\input amigatexinfo
\input texinfo @c -*-Texinfo-*-
@comment or gtexinfo for german syntax
@comment or texinfotimes

@c history since 7-Mai-99:
@c gratis 800 nummer
@c @item Phone:  +1-800-9034152  (USA)@*
@c ftp://ftp.uni-paderborn.de/
@c -> http://de.aminet.net/
@c http://cognac.informatik.uni-kl.de/download/index.html
@c -> http://www.uni-kl.de/OOC/
@c jede beliebige Platform zu entwickeln. @code{Oberon-2} ist fast identisch mit @code{Amiga E} und @code{Cluster}.
@c -> jede beliebige Platform zu entwickeln. @code{Oberon-2} ist fast identisch mit
@c    @code{Amiga E}, @code{ADE 95 (gnat)}, @code{Modula/Pascal} und @code{Cluster}.
@c @sp 1
@c -> einfach NOCH eine Leezeile darunter einf�gen (fix bug mit texi2html 1.55k)

@c @subtitle{Nutzt den @code{@strong{freien Speicher}} als @code{@strong{Cache}}, das Ergebnis} ist, da� das Programm}

@c bzip in copyright in tar *.lha.zip -> *.lha

@c Usage: @sc{FDA MC68020} <Your E-mail address>

@c ------ how to compile it ------

@c CD FDA/FDAdoc

@c Required files:
@c AmiNet:util/lib/ixemul-xxx.lha
@c ftp://ftp.unina.it/pub/amiga/geekgadgets/amiga/m68k/snapshots/980523/bin/texinfo-3.11-bin.tgz

@c ftp://ftp.cs.umb.edu/pub/tex/texi2html
@c ftp://ftp.unina.it/pub/amiga/geekgadgets/amiga/m68k/snapshots/980523/bin/perl-5.004_04-bin.tgz

@c Guide: need makeinfo V1.68 (GeekGadgets/texinfo.tgz)
@c gnu:bin/makeinfo --verbose --force --fill-column=80 --amiga Translator/FDA.tex
@c not necessary options: amiga_guide_verbose_header amiga_convert_nodes

@c Guide OS2:
@c FDA_demo/MC68000/gconv -d38 -oDevel:FDA_link/FDA_Demo/FDAdoc/FDA_d.guide_os2 -s40 Devel:FDA_link/FDA_Demo/FDAdoc/FDA_d.guide

@c TXT: need makeinfo V1.68 (GeekGadgets/texinfo.tgz)
@c gnu:bin/makeinfo --verbose --force --fill-column=80 --amiga-34 --no-headers -o FDA.txt Translator/FDA.tex

@c TXT (ANSI): need makeinfo V1.68 (GeekGadgets/texinfo.tgz)
@c gnu:bin/makeinfo --verbose --force --fill-column=80 --amiga --no-headers -o FDA.txt Translator/FDA.tex

@c HTML: need texi2html V1.54
@c gnu:bin/perl5 Tools:Text/TeX/TeXinfo/bin/texi2html -glossary -split_chapter -number -verbose -expandinfo FDA_d.tex

@c DVI (PasTex): please execute `SetEnv TEXFORMAT plain` 2 times
@c                              RX TeX:REXX/start_tex.rexx Translator/FDA.tex
@c after first run: gnu:bin/texindex Translator/FDA.cp
@c texindex from (GeekGadget/texinfo.tgz)

@c PS:
@c TeX:bin/dvips Translator/FDA.dvi

@c ------- Short syntax table ----------

@c @w{this command prohibits line breaks within TeX}
@c @group{this text is really on one page}
@c @noindent   kein einr�cken, skip 3 letter in beginning paragraph
@c @strong{},@code{}   *bold*
@c @emph{}             *italic*
@c @var         uppercase + *bold*
@c @key{}       User must enter a key/menu/gadget
@c @dfn{}
@c @kbd{}       User must enter something
@c @samp{bla}   `bla`
@c @sc{u.s.a.}  U.S.A.
@c @result{},@url       no support in makeguide1.55, only V1.68

@c @: after d.h. (i.e.) (Point, exclamation mark, colon, which not terminates a sentence
@c @- Hophenation point
@c @. really end a sentence with .
@c @? "                         ?
@c @space       really a space example: Hallo@ @ @ you => Hallo   you
@c @return
@c @tab

@c @cindex      concept
@c @findex      function
@c @vindex      variable
@c @kindex      key
@c @pindex      program
@c @tindex      datatype

@c %**end of header




@c @ifset writing-amigaguide
@c @image{GuideSpecials}
@c @endifset

@c @ifclear writing-amigaguide
@c Please read GuideSpecials.txt
@c @endifclear

@c @headings double    ???????




@c ------- initialize ---------

@c %**start of header
@setfilename FDA
@settitle Future Drive Accelerator V1.4 Documentation and newer
@set VERSION 1.4
@finalout
@setchapternewpage off

@iftex
@smallbook

@c @afourpaper
        @c afourpaper =  \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}%

 @c Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
 @c 4) hoffset; 5) binding offset; 6) topskip.  Then whoever calls us can
 @c set \parskip and call \setleading for \baselineskip.
@tex
% makes nothing
%\internalpagesizes{\vsize}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{\topskip}
%\internalpagesizes{\vsize}{190mm}{\voffset}{\normaloffset}{\bindingoffset}{\topskip}
\voffset=0in
\hoffset=0in
\normaloffset=0in
\bindingoffset=0in
@end tex

        @c \pagewidth
        @c \hsize = 5 in
        @c \vsize = 7.7 in
        @c \voffset = 0.4in

        @c @afourwide

        @c A specific text layout, 24x15cm overall, intended for A4 paper.  Top margin
        @c 29mm, hence bottom margin 28mm, nominal side margin 3cm.
        @c  \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}

        @c @afourlatex

        @c @smallbook @c 7x9.5

        @c @pagesizes 24cm,15cm


        @c a4
        @c \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}%

@end iftex



@c @pxref
@set xrefstring see also
@c @xref
@set Xrefstring See also
@c @footnote
@set Footnotestring Footnote
@set Chapterstring Chapter
@set Sectionstring Subchapter
@set Appendixstring Appendix
@set pagestring Page


@c ------ plain text --------

@comment
@comment  FDA_d.texi V1.4
@comment
@comment  Documentation for Future Drive Accelerator (Texinfo format, Language: english)
@comment
@comment  Copyright (C) 1998-1999 Martin Tauchmann
@comment
@comment ----------------------------------------------------------------
@comment --- Title & Copyright Page (for printed manual)              ---
@comment ----------------------------------------------------------------
@titlepage
@title{@code{Future Drive Accelerator}}
@subtitle{Uses the @code{@strong{free memory}} as a @code{@strong{cache}}, the program reacts}
@subtitle{automatically on changes in memory resources, so that you will always}
@subtitle{get the maximum speed for your drives. Even ``resources-hungry`` programs}
@subtitle{will get enough memory.}
@subtitle{}
@subtitle{Version @value{VERSION} (7-May-1999)}
@author by Martin Tauchmann

@c @sp 7
@c @center @titlefont{Future Drive Accelerator}
@c @sp 2
@c @center{Uses the free memory as a cache for harddisks, floppies ,CompactDisk-, removable- and ZIP-drives}
@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1998-1999 Martin Tauchmann

This documentation may be copied and spread as long as the copyright note
and this copy permission remains unaltered in all copies.

@ignore
Permission is granted to process this file through TeX and print the
results, provided the printed document carries a copying permission
note identical to this one except for the removal of this paragraph
(this paragraph being not relevant to the printed manual).
@end ignore

@noindent COPYRIGHT

Copyright @copyright{} 1998-1999 Martin Tauchmann

@code{Future Drive Accelerator} is shareware. In this case, that means that you need
a personalized version of the program to use the full functionality of
@code{Future Drive Accelerator}.

Users get a personalized version when they have registered with me.
This personalized version may not be given to anyone else. To give away
the personalized version or to use versions of the program which you did not get
directly from me for your personal use, is considered sofware-piracy.


The personalized version may not be transfered, sold or exchanged to another person
or organization. It is solely for the use of the registered person.

You may not use any ``patches`` for @code{Future Drive Accelerator} or publish
them (regardless whether they are in text, binary or any other form), except with explicit
permission by me for the purpose of updating. Using patched or modified versions of
this program is considered software-piracy.


@noindent NO WARRANTY

There is absolutely no warranty for this software. Although the author has paid
attention on security of data, compatibility and speed while developing this
software, he can give no warranty that this program is 100% bug-free.
You are using this software solely on your own risk. The author cannot be held
responsible for any damages or loss of data that may be caused by this program.

@noindent DISTRIBUTION

The demo-version package is ``freely distributable``.
It may be copied on any media that is used to distribute free software,
for example: FD-disks, CD-ROMs, FTP-server and BBS systems.

@noindent The full version is not to be distributed.

No program, document or file of this software package may,
partially or complete, be distributed with another software package
without the written permission of the author.

@noindent The demo-version may only be distributed complete
and unchanged.

To make sure that the archive is in its original state, distributors
should only use the original archives:
@smallexample
@uref{http://de.aminet.net/pub/aminet/disk/cache/fda.lha,Aminet: @file{fda.lha}}
@uref{http://home.pages.de/~MartinTauchmann/fdaupdate.lha,World Wide Web: @file{fdaupdate.lha}}
@end smallexample
@sp 1

Programs and documentation may not be modified
The only exception is the use of archiving software like
@code{LHA, LZX, ZIP or TAR-GZIP/BZIP2}, as long as the files can be restored
unaltered.

There is no upper limit for distribution costs (cost for disks, tapes
or CD-ROMs, or for duplicating them). Such limits have proven harmful
for the idea of free software. In some cases, software has been removed
instead of lowering the price of a disk below the limit.

Although the author has not set such a limit, he wants to make clear
his opinion on the topic:

@itemize @bullet
@item This demo software should be available free for everyone, wherever
this is possible.

@item If you bought this demo software under normal conditions from a
PD dealer on a disk and paid more than 5DM/5$, you have @emph{certainly}
paid too much. Please don't support such practices and try to find a better
and cheaper source for your software.
@end itemize

@noindent RESTRICTIONS OF USE

@code{Future Drive Accelerator} may only be used in the way intended by
the author, this means it may only be executed on Amiga-computers running
AmigaOS. Reassembling, reverse engineering or translation of source code
is forbidden.

The documentation and the program texts of @code{Future Drive Accelerator}
are protected by the same copyrights as the program itself. This means
the documentation or program texts may not be altered or translated.

To avoid any misunderstandings: You MAY NOT translate the texts or documentation
for @code{Future Drive Accelerator} and distribute them. You must be authorized
by me as an official translator. Unauthorized translations of texts and documentation
are illegal, harm the copyright and will be removed from public software archives.

No program, document or file from this software package may, partly or completely,
be used on machines which are

@itemize @bullet
@item used for research, development, construction, test or
production of weaponary or any other militarical equipment. This includes
machines which are used for training purposes.

@item used by persons, who accept, support or use violence against
other persons (e.g. foreigners).
@end itemize
@end titlepage
@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Table of Contents (appears only in printed manual)       ---
@comment ----------------------------------------------------------------
@contents
@comment ----------------------------------------------------------------


@c @headings on
@c @headings double
@c @majorheading
@iftex
@headings off
@everyheading @thischaptername @| @|@thispage
@everyfooting @|Future Drive Accelerator@|
@end iftex


@comment ----------------------------------------------------------------
@comment --- Top Node (not printed)                                   ---
@comment ----------------------------------------------------------------
@ifinfo
@node Top, Concepts, (dir), (dir)
@top @code{Future Drive Accelerator} V@value{VERSION} documentation and newer

@noindent Uses the
@ifhtml
<BLINK>
@end ifhtml
 @code{@strong{free memory}}
@ifhtml
</BLINK>
@end ifhtml
as a
@ifhtml
<BLINK>
@end ifhtml
@code{@strong{cache}}
@ifhtml
</BLINK>
@end ifhtml
, the program reacts automatically on changes in memory resources, so that you
will always get the maximum speed for your drives. Even ``resources-hungry``
programs will get enough memory.
@sp 2

@menu
Introduction:

* Concepts::          The concepts behind @code{Future Drive Accelerator}
* Requirements::      What you need to use @code{Future Drive Accelerator}
* Benchmarks::        What speed improvements can be achieved with @code{Future Drive Accelerator}?
* Tested Systems::    Tested computers
* Registration::      If you like the demo@dots{}

Usage:

* Installation::      How to install and run @code{Future Drive Accelerator}
* Preferences::       How to configure @code{Future Drive Accelerator}
* View::              How to quit and monitor @code{Future Drive Accelerator}

Important informations:

* Copyright::         Copyright and other legal stuff
* Author::            Where to send bug reports, comments and orders?

About the program and the author:

* Features::          Compatibility and features of @code{Future Drive Accelerator}
* Future::            Whats more?
* History::           Development history of @code{Future Drive Accelerator}
* Other Products::    Other products
* Credits::           The author wishes to thank@dots{}


For curious people:

* Speed up::          How to make @code{Future Drive Accelerator} even faster
* Mark Bad Memory::   How to use faulty memory without problems
* OS more reliable::  How to make the Amiga more reliable
* Known Bugs::        Known/new bugs
* Technical::         Specifications, data security, 4 GigaByte hard disks, ATA[PI]@dots{}

* Index::             Index for this document
@end menu

@end ifinfo
@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Concepts                                        ---
@comment ----------------------------------------------------------------
@node Concepts, Requirements, Top, Top
@chapter The concepts behind @code{Future Drive Accelerator}
@cindex concepts
@cindex news
@cindex low memory
@c @cindex low memory
@cindex set size
@cindex flexible
@cindex uses free memory
@c @cindex uses free memory
@cindex low memory
@cindex accelerate
@c @cindex accelerate
@cindex change floppy
@c @cindex change floppy
@cindex nature, saved
@cindex environment, saved
@c @cindex save Environment
@cindex hardware, less used

@noindent @code{Future Drive Accelerator} is a disk-cache program.
@sp 1

A cache buffers all data which is written or read from the drive
(hard disks, floppy disks, Compact-Disk, removable disk, ZIP@dots{}).

If requested data is already in the cache, it doesn't need to be loaded
from the slow disk.
@sp 1

@noindent So far nothing new!
@sp 1

Memory is, as we all know, always short. So you better think twice before
you give it to programs.
No matter how you set it up, you can never make it suitable for all programs.
One program runs (thanks to the cache) faster than ever before, another one
stops working (due to the lack of RAM).
@sp 1

With all other cache programs, you had to adjust the memory usage.
Of course, the more memory a cache can use, the faster it will work.
So with old cache programs the memory usage had been set quite high,
but because other programs stopped working this was stopped rather quickly.
Now the cache is commonly set to an average size, so that all ``memory-eating``
programs run.@*
Or you always had to change the cache-size manually to fit the current situation.
But this is not a very satisfactory solution. And this is where
@code{Future Drive Accelerator} comes in.
@sp 1

@noindent @code{@strong{The whole free memory}}, whose size is changing all
the time, @code{@strong{is used as cache.}}
@sp 1

With this technique, an @code{Amiga} with a 68030 50@sc{M}hz processor and 16
@sc{MB}yte FastMemory (Blizzard @sc{IV}) averages a @strong{factor 4} speed up. @xref{Benchmarks}.

@sp 2

Write accesses are buffered, and later, while @strong{writing back} to the drive,
the head is moved from the highest to the lowest address.
@sp 2

Another improvement is built-in for people who use exchangable media like
disks, CDs, MagnetOptical-disks and ZIPs. When inserting the media again,
the still filled cache is used. The media doesn't need to be accessed again.
@sp 2

Who used a lot of dos-buffers?
@footnote{A dos-buffer requires (per default) a half KiloByte.}
for the file system, you can now even @code{save} this memory.
@sp 2

Not to mention that you @code{@strong{help protecting the environment}}.
The motor and the electronics of the drive is used less and thus,
energy is saved.@*
@result{} the @strong{nuclear power plants} can be shutted down earlier.@*
You should also keep in mind that the @strong{hardware} wears out less.

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Requirements                                    ---
@comment ----------------------------------------------------------------
@node Requirements, Benchmarks, Concepts, Top
@chapter What is required to use @code{Future Drive Accelerator}?
@cindex overall requirements
@cindex OS 2.0
@cindex memory
@cindex DiskSafe
@cindex CopyMem(Quick) (OS)
@cindex FileSystems
@cindex Devices

@code{Future Drive Accelerator} needs at least:

@table @asis
@item @dfn{AmigaOS} 2.0
or better.

@item @dfn{2 Megabyte memory}, more memory is recommended.

@end table
@sp 1

@noindent Additionally, the following software is supported:

@table @asis
@item @uref{http://de.aminet.net/pub/aminet/disk/salv/DiskSafe.lha,@dfn{DiskSafe}}
After a reset or system crash, the cache will be written back before restarting the system.

Example installation for @file{s:Startup-Sequence}:
@smallexample
DiskSafe DF1: DF0: HD0: Store: Font: HD2: HD3: HD4: @dots{} REBOOT QUICKKEY WAITVERIFY VERIFYREQ LOGFILE=Store:T/DiskSafe.log IGNORE
@end smallexample
If this shouldn't work, try adding @code{@sc{RESETKEY}}.


@item @dfn{CopyMemQuicker}
@xref{Speed up}.

@item @dfn{FileSystems}, @dfn{Devices}
@xref{Features}.
@end table

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Benchmarks                                      ---
@comment ----------------------------------------------------------------
@node Benchmarks, Tested Systems, Requirements, Top
@chapter What speed improvements can be achieved with @code{Future Drive Accelerator}?
@cindex Benchmarks
@cindex speed
@cindex statistics
@cindex copy
@cindex time
@cindex SysInfo
@cindex DiskSpeed
@cindex factor
@cindex time
@cindex Guide

@itemize @bullet

@item Copies 850@sc{KB} in @strong{35 seconds} from hard to floppy disk,
this equals the speed of formatting. This is possible because,
minimizes the overall seek time required to read or write data from or to
disk. Outstanding I/O requests are ordered such that they can all be performed
``@strong{with one sweep}`` of the disk head assembly, from the highest to the lowest disk
address (Elevator seeking).

@item @strong{23 MB/s} while reading, (SysInfo V3.23) instead of 7 MB/s without cache,
with an Amiga and following equiment: Zorro @sc{III}, CyberStorm @sc{MKIII}, @sc{060/PPC 604 150M}hz, UltraWide @sc{SCSI HD}, 64 @sc{MB} FastMemory, CopyMemQuick 40+.

@item The booting can get twice as fast if there are a lot of small files
to load and many files reside in the @file{WBStartup} directory.

@item Faster access to directories from Workbench.


@item Amiga MC68030 50MHz, 16@sc{MB} FastMemory.

@itemize @minus
@item IDE-HardDisk (tested with @code{DiskSpeed})
@footnote{DiskSpeed Reference: 262144 byte, MEMF_FAST, LONG-aligned buffer.}
@example
read  @strong{@var{6.8} times} faster.
write @strong{@var{8.1} times} faster.
@end example

@item DD-FloppyDisk (tested with @code{DiskSpeed})
@example
read  @strong{@var{488.0} times} faster.
write @strong{@var{997.6} times} faster.
@end example

@item Copying from one partition to another.
@example
44 Dirs, 561 Files = 2.3MB Size
@kbd{c:Copy MUI: ASWAP:MUI ALL CLONE QUIET}

Dos  457 Dos-Buffers  46 secs 253999 micros
FDA    7 Dos-Buffers  11 secs 196642 micros (@strong{4.13 times faster})
@end example

@end itemize

@item Amiga PPC604 233MHz MC68060 50MHz, 96@sc{MB} FastMemory.

@itemize @minus
@item IDE-HardDisk (tested with @code{DiskSpeed})
@example
read  @strong{@var{19.5} times} faster.
write @strong{@var{20.4} times} faster.
@end example

@item SCSI-HardDisk (tested with @code{DiskSpeed})
@example
read  @strong{@var{3.8} times} faster.
write @strong{@var{3.5} times} faster.
@end example

@end itemize


@end itemize
@sp 1


@ifset writing-amigaguide
@menu
* (FDA-Benchmarks):: More (graphical) statistics, which have been created using @code{DiskSpeed}.
@end menu
@end ifset

@ifclear writing-amigaguide
More (graphical) statistics, which have been created using @code{DiskSpeed}
can be found in the guide-file @file{FDA-Benchmarks}.
@end ifclear

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Tested Systems                                  ---
@comment ----------------------------------------------------------------
@node Tested Systems, Registration, Benchmarks, Top
@chapter Tested systems
@cindex Systeme
@cindex PowerPC
@cindex CSPPC
@cindex CVPPC
@cindex Amiga 1200
@cindex Amiga 4000 (040)
@cindex Amiga 3000
@cindex MultifaceIII
@cindex Tower with Zorro II Databoard (Micronik)
@cindex PicassoII
@cindex IDE
@cindex Buddha (IDE)
@cindex ATA(PI)
@cindex SCSI-2
@cindex SCSI (UW)
@cindex DirOpus5 Magellan

@smallexample
@strong{Hardware List}

A4000/40/40Mhz PPC 200Mhz + 64 Fast
CVPPC + 8Mb
Zip Drive
Oktagon Controller
1.3Gb SCSI II Hard Drive (1 partition)
4.3GB SCSI III Hard Drive (3 partitions)
Toshiba 12xCD
IOBlix Super Fast Serial Card
Epson GT-6000 Flatbed Scanner
Pace 56 Voice (V90)(ISP=Wirenet)
Micronik A4000 Tower case
Epson Stylus Color 800
External floppy Drive
Minolta 7000 Camera
External Speakers
MicroVitec GPM 1701 Monitor
Tabby (Drawing Pad)
Sound Sampler
Prelude Sound Card

@strong{Software Most Often Used}

AHI (music to your ears - registered)
All Experimental PPC Software
PFS2 (So so fast)
CybergraphX V4 (Good with CVPPC)
PPaint 7.1 (It`s all in the eye of the beholder)
ImageFX Ver 3.2 (Very stable at this upgrade)
Netconnect (Kiss - Keep It Simple Stupid)
Miami (Works great with my IOBlix)
Turboprint 6.02 (Faster now as it`s using the PPC Module)
PageStream 3.3a (I love it)
Organiser (Who am I)
Opus Magellan II (My god, it's full of stars)
CandyFactoryPro (Good PPC Program)
Zip Drivers (Backup my Backups)
HappyDT (Sometimes crashes Netconnect and other programs)
Elastic Dreams (Game for a laugh)
Cyberview (Registered)
Cybershow (Registered)
AK-Datatypes (Registered)
Quicksampler (Good PD)
MultiCX (Registered)
OxyPatcher (Make Those Programs Burn)
MUI (3.8) (Workbench 4 perhaps?)
Kingcon (No two shells are the same)

@strong{Relaxing Software Used}

Genetic Species
Foundation
Alternate Reality (RPG)
Bane of the Cosmic Forge (RPG)
Bards Tale (RPG)
Quake
UFO
Dungeon Master 1 & 2 (RPG)
Ultima VI (RPG)
Birds of Prey
Theme Park
Civilisation
Syndicate
Doom
Stratego (PD)
Myst
Colonization
Frontier Elite II
Deluxe Galaga
Shadow Of The First Moon
VChess
JetPilot
Tiny Troops
Blade (Good Iso RPG)
EaglePlayer (Registered)
MrJQuote

Amiga 1200:
 + 2 880KB Floppys
 + 2 MegaByte 32 Bit Fast-Memory
 + Turbo Jet A1230-BOARD � Harms Computertechnik
   @sc{MC} 68030+@sc{MMU} @strong{14.2 MHz} Cache Burst VBR=$0
   FPU68881     15.4 MHz
 + WesternDigital Caviar 2850 (850MB)
   - since I have this HD, I had to slow down my MC68030 from @code{@strong{28MHz to}}
     @strong{14.2�MHz}. If anybody knows a solution, I would really like to know.
     @xref{Author,Autor}.



 CPU                :MC 680030 50MHz
 Computer           :Amiga 1200
 OS                 :V 3.0
 Controller         :IDE (Buddha)
 Memory             :16MB FastMem
                      2MB Chip
 FileSystem         :FastFileSystem 44.5
 Hard Disk          :1x Quantum Fireball 3.68 GB
 ZORRO-II-Karten    :1x MultifaceIII, 1x Buddha IDE
 other cards        :Blizzard 1230 (CPU-PORT)
 others             :Micronik Tower mit Zorro II Datherborad
 running programs   :Prometheus V2.6, FKey, MouseBlanker, MultiCX V2.78,
                     NewIcons V40.2, PowerIcons V1.0, SleepingPointers
                     V1.0a, Multifax Spooler V3.1, Killclick2


CS PPC 233MHz, 060 50MHz

A4000 MC68040 25MHz 16FastMem


A3000 CSPPS 604/200 060/50
PicassoII running cybergraphics (will soon be CVPPC)
4 different SCSI harddisks of which 3 are SCSI-2 and one UWSCSI
CSPPC-interface.
DAT-tapestreamer, CD-ROM, 70MB RAM and many things I can't remember.


Amiga 4000 with 68040/40Mhz, about 80MB Fastram, most of it
on the turboboard, and 3,5MB Fast on the motherboard.
2nd.scsi.device / scsi.device / ffs/afs/sfs..


Amiga 1200  040/40 2/32MB 2GB TowerhawkII X2 Multiscan
CPU         : MC 68040 40MHz
OS          : V 3.1
Controller  : IDE
Memory      : 32MB Fast, 2MB Chip
FileSystem  : FastFileSystem 43.19
Hard disk   : 1 2GB-Platte with 2 Partitionen (50MB and the rest)
CD          : 1 4fach-CD-Rom (RandyCD-Rom)
DirOpus5 Magellan is used as Workbench replacement.

@end smallexample


@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Registration                                   ---
@comment ----------------------------------------------------------------
@node Registration, Installation, Tested Systems, Top
@chapter If you like the demo@dots{}
@c @cindex Registration
@cindex Full version
@cindex Registration
@cindex Orders
@cindex Worldwide
@cindex World Wide Web
@cindex Credit cards
@cindex Phone
@c @cindex Phone
@cindex FAX, Free
@cindex ShareIt
@c @cindex Kagi
@cindex Eurocheque
@cindex Bank transfer
@cindex Cash
@c @cindex Cash
@cindex Student
@cindex Umemployed
@cindex PowerCache
@cindex DynamiCache
@cindex HyperCache
@cindex leasing
@cindex only
@c @cindex flabby

@noindent If you like this @emph{demo-version} you might want to use the @strong{full version} which features:

@itemize @bullet

@item Faster, because the complete free memory is used as cache.

@item Unlimited number of cached drives.

@item And of course no time limit.

@end itemize
@sp 2

@noindent Ordering the full version is easy, convenient and comfortable - 24h a day worldwide!
@sp 1

@noindent Prices
@itemize @bullet
@item The @strong{full version} is available for only @code{@strong{19,99 DM  ($12.99) (11,99 EUR)}}.

@item Minus @strong{5,- DM  (-$3) (-2,60 EUR)} if PowerCache, DynamiCache or
HyperCache can be leased.

@item Minus @strong{4,- DM  (-$2.5) (-2,10 EUR)} if you are @code{@strong{a student, umemployed or
a pensioner}} ;-). Please add some proof. @xref{Author, Author}.

@item Plus  @strong{4,- DM  ($2.5) (2,10 EUR)} (outside Europe 8,- DM ($5) (4,20 EUR)) shipping, if you can not receive Email.
@xref{Free Email, Free Email}. For an update, just transfer the money to my bank account.

@item Update @strong{0,- DM  ($0) (0 EUR)} if it can be sent via Email.
@xref{Free Email, Free Email}.

@item Special prices for 10 or more users.
Prepaying of licenses and commercial reselling is also possible.
Please contact the author for more details. @xref{Author, Autor}.
@end itemize


@noindent Ordering
@table @code
@enumerate
@item @uref{http://shareit1.element-5.de/programs.html?nr=102792,Online in the World Wide Web}, @sc{SSL} encoded.

@itemize @bullet
@item Credit cards

@itemize @minus
@item Visa@*
@item Eurocard/Mastercard@*
@item American Express@*
@item Diners Club
@end itemize

@item Wire-transfer

@end itemize


@item per Phone, FAX or E-Mail
@itemize @bullet

@item ShareIt service.

@itemize @asis
@item (Program-number @var{102792})
@end itemize

@itemize @minus
@item @ref{Free FAX,FAX}:  +49-221-2407278  (Germany)@*
@item Phone: +49-221-2407279  (Germany)@*
@item FAX:    +1-724-8508187  (USA)@*
@item Phone:  +1-800-9034152  (USA) free@*
@item Phone:  +1-724-8508186  (USA)@*
@item E-Mail: @email{MartinTauchmann@@bigfoot.com}
@end itemize

@c @item Kagi service.
@c @itemize @minus
@c @item @ref{Free FAX,FAX}:  +1 (510) 652-6589 (Berkeley, California)
@c @item Phone: +1 (510) 601-5244
@c @end itemize

@end itemize

@item US check
@itemize @asis
@item Send $15.5 to the address below, include the program-number @var{102792}.
@example
ShareIt! Inc.
PO Box 844
Greensburg, PA 15601-0844
USA
@end example
@end itemize

@item Eurocheque
@itemize @asis
@item Please fill in the amount in EUR and send to the @ref{Author, author}.
@end itemize

@item Bank transfer
@itemize @asis
@item Transfer the money in EUR or DM to:
@example
Badische Beamtenbank eG (Germany)
76119 Karlsruhe
Bank Location Number: 660 908 00
Martin Tauchmann
Account Nr.: 2473135
Usage: @sc{FDA MC68020} <Your E-mail address>
@end example
@end itemize

@item Cash (worldwide)
@itemize @asis
@item Put the money in an envelope and send it to the @ref{Author, Autor}.
(Use an envelope where the money can't be seen against the light.)
@end itemize

@end enumerate
@end table

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Section: Registration/Free Email                          ---
@comment ----------------------------------------------------------------
@node    Free Email, Free FAX,          , Registration
@unnumberedsec Free Email
@cindex Email, Free

@noindent @uref{http://mail.yahoo.com}@*
@uref{http://mail.angelfire.com}@*
@uref{http://www.gmx.de}@*
@uref{http://www.dejanews.com} (No problems with a ``FireWall``)

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Section: Registration/Free FAX                            ---
@comment ----------------------------------------------------------------
@node    Free FAX,       , Free Email   , Registration
@unnumberedsec Free FAX
@cindex FAX, Free

@noindent @uref{http://www-usa.tpc.int/sendfax.html?destnumber=49 221 2407278}

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Installation                                    ---
@comment ----------------------------------------------------------------
@node Installation, Preferences, Registration, Top
@chapter How to install and configure @code{Future Drive Accelerator}
@cindex Installation
@cindex Installer V43.3
@cindex S:Startup-Sequence
@cindex NoRamReverse
@cindex Installer V43.3
@cindex PoolMem
@cindex SetPatch
@cindex SaferPatches
@cindex SetMan
@cindex HDOff
@cindex WBStartup directory
@cindex QUIET (Argument)
@cindex FROM (Argument)

Please use the included installer script to install @code{Future Drive Accelerator}.
The @dfn{AmigaOS} Installer V43.3 is required. This version can be found in
@dfn{Aminet}.

@sp 2

@noindent @code{Future Drive Accelerator} can be started in different ways:

@itemize @bullet
@item Move it to the @file{WBStartup} directory, and remove the brackets from
the tooltype @code{@sc{QUIET}}. (Workbench-Menu ->@kbd{Pictogram} ->@kbd{Information}

@item or insert this line:

@sp 1

@kbd{RUN <>NIL: SYS:System/FDA QUIET}
in the file @file{S:Startup-Sequence} after

@itemize @minus
@item SetPatch
@item @uref{http://de.aminet.net/pub/aminet/util/misc/SaferPatches.lha,SaferPatches} or SetMan
@item PoolMem @xref{Speed up,@kbd{NoRamReverse}}.
@item HDOff (not really necessary, but you can then work with the cache when
the harddisk is off.)@*
@end itemize


@end itemize


@sp 3

@noindent @code{Future Drive Accelerator} uses the following Workbench Tool Types and Shell parameters:

@table @asis
@item @code{FROM} (Only from Shell)
Specifies the name of the configuration file.

@item @code{QUIET}
Initialising messages are not printed.@*
This is useful for an installation in the @file{SYS:WbStartup} directory,
or the @file{S:Startup-Sequence}.
@end table


@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Preferences                                     ---
@comment ----------------------------------------------------------------
@node Preferences, View, Installation, Top
@chapter How to configure @code{Future Drive Accelerator}
@cindex Preferences
@cindex Save (Argument)
@cindex Use (Argument)
@cindex MainProgPath (Argument)
@cindex FROM (Argument)
@c @cindex Windows
@cindex Windows

@noindent @code{Future Drive Accelerator} can be configured using the @code{Future Drive Accelerator
Preference Editor}:

@menu
* MainWindow::         The Mainwindow

Windows for configuring drives:

* DeviceWindow::       The DeviceWindow

Other windows:

* InfoWindow::         Informations about the drive

@end menu
@sp 1

The Preference Editor uses the following Workbench Tool Types and
Shell parameters:

@table @asis
@item @code{FROM} (Only from Shell)
Specifies the name of a configuration file to load.

@item @code{EDIT} (default option)
The configuration can be changed.

@item @code{USE}
The new configuration will be saved temporary.

@item @code{SAVE}
The new configuration will be saved permanently.

@item @code{MAINPROGPATH}
Directory of @code{Future Drive Accelerator}, e.g. @file{Sys:System/}. The configuration
(@file{FDA.prefs}) will be saved to the directory. If Future
Drive Accelerator loaded before @file{ENV:} is initialized, which is the case
when booting from floppy disk, the config will be found anyway.
@end table

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Section: Preferences/MainWindow                          ---
@comment ----------------------------------------------------------------
@node MainWindow, DeviceWindow, , Preferences
@section The Mainwindow
@cindex not used memory (button)
@cindex not used memory
@cindex Fastmemory
@cindex Chipmemory
@cindex move cache (button)
@cindex cache, move
@cindex delete cache (button)
@cindex cache, delete
@cindex color flash (button)
@cindex color flash
@cindex Save (button)
@cindex Use (button)
@cindex Cancel (button)
@cindex protect cache (button)
@cindex cache, protect
@cindex checksummes (button)
@cindex Drives (button)
@cindex drives
@cindex first (button)

The MainWindow contains a listing of drives. When you select a window,
a new window (@pxref{DeviceWindow, Device Window}) will be opened.

@ifinfo
@ifset writing-amigaguide
@image{Translator/FDA-MainWindow}
@end ifset
@end ifinfo

@ifhtml
<center><img src="FDA-MainWindow.png" width=613 height=350 alt="Main window" border=0></center>
@end ifhtml

@iftex
@c @image{FDA-MainWindow.png}
@tex

%\def\showps#1#2#3#4{
%\hbox to #2{ \vbox to #3{\vss
% \special{psfile=#1 #4 hsize=#2 vsize=#3}
%}\hss }
%}

%\begin{figure}[h]
%  \centerline{
%              \showps{FDA-MainWindow.png}{3in}{3in}{scale=1 render=frame} %render=plain
%mode=bw hscale vscale
%             }
%  \caption{Main Window} \label{Pic:FDA-MainWindow}
%\end{figure}




%\\bPic{FDA-MainWindow.png}{Main Window}{FDA-MainWindow}

%% Now you have the picture placed in a floating, with the above text as caption and you can reference it like
%% \\ref{foo1} on page \\pageref{foo1}
@end tex
@end iftex

@sp 2
@table @code
@item Not used FastMemory
For calibration.@*
How much of your fast memory shall not be used as cache?@*
60 kiloBytes is a good value here, because a minimal amount of memory is necessary
to send messages. This way, memory can be made available faster.

@item Not used ChipMemory
For calibration.@*
How much of your chip memory shall not be used as cache?@*
100%=No chip memory will be used @result{} which is the fastest setting.

@item FastMemory first
@itemize @asis
@item @code{Off}: The cache uses ChipMemory first, then FastMemory.
@item @code{On}: The cache uses FastMemory first, then maybe ChipMemory.
@end itemize

@item View color flash if track moved or deleted
@itemize @asis
@item @code{Off}: No color flash is created.
@item @code{On}: There will be a @strong{green} flash, when a part of the cache is moved in the RAM.@*
There will be a @strong{red} flash when a part of the cache is removed from RAM.
@end itemize
@*Rem.:This option is useful to calibrate @code{Not used Fast- ChipMemory}.

@item Protect tracks in memory with checksummes
@itemize @asis
@item @code{Off}: The cache is not protected.
@item @code{On}: The cache will be protected from external programs.
@end itemize
@*Rem.:This is recommended for Intros, games and badly programmed software which change
foreign memory blocks. @xref{DebugFiles,Enforcer-write-hits}.@*
Or if you have bad memory. @xref{Mark Bad Memory,Defekten Speicher}.
@*
@itemize @asis
@item Remember: The FileSystem itself calculates checksums.
If you get an ``Warning!``-Requester with a ``checksum-@strong{error}`` , you
may not, in no case, press ``Cancel``, but instead reboot your
Amiga at once!
@*
This may also happen without @code{Future Drive Accelerator}, but it is
not so likely that a program wrote into the dos-buffers accidently.
Dos-buffers just are a ``smaller target``.
@end itemize
@end table
@sp 2

The buttons at the bottom of the window are used to set the path
where the config-file will be saved. The name of the file is @file{FDA.prefs}.

@table @code
@item Save
The configuration is saved to the @file{ENVARC:} directory.
The new config will be used automatically by @code{Future Drive Accelerator}
and will survive a reboot. The preferences editor will quit after saving.


@item Use
The configuration is saved to the @file{ENV:} directory.
The new config will be used automatically by @code{Future Drive Accelerator}
but will @emph{not} survive a reboot. The preferences editor will quit after saving.


@item Cancel
To quit the preferences editor. All changes will be lost.
@end table

@ifinfo
@menu
* Default::    What are the default values?
@end menu
@end ifinfo

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Section: Preferences/DeviceWindow                          ---
@comment ----------------------------------------------------------------
@node DeviceWindow, InfoWindow, MainWindow, Preferences
@section The Device Window
@cindex Cache
@cindex Hardware Cache
@cindex Software Cache
@cindex DiskSafe
@cindex Device
@cindex Removeable Disk? (button)
@cindex Write retention
@cindex Write through (button)
@cindex Write sync (button)
@cindex Write async (button)
@cindex Write late as possible (button)
@cindex Write for temporary (button)
@cindex Elevator seeking
@cindex Size of Track (button)
@cindex read-ahead
@cindex Verify write (button)
@cindex Verify write
@cindex Async delay (button)
@cindex Async delay
@cindex Cache usage priority (button)
@cindex hierarchy
@cindex enable (button)
@cindex active
@cindex disable (button)
@cindex inactive
@cindex Info (button)
@cindex Drive informations
@c @cindex Laufwerksinformationen
@cindex DataSafety
@c @cindex Datensicherheit
@c @cindex Update Befehl
@cindex update command

@noindent The following can be set in the Device Window:

@noindent When data is written back to the drive, if the data should be verified,
how much data should be pre-read and how much of the cache can be used by this drive.

@ifinfo
@ifset writing-amigaguide
@image{Translator/FDA-DeviceWindow}
@end ifset
@end ifinfo

@ifhtml
<center><img src="FDA-DeviceWindow.png" width=472 height=333 alt="Device window" border=0></center>
@end ifhtml

@iftex
@tex
%\\bPic{FDA-DeviceWindow.png}{Device Window}{FDA-DeviceWindow}

%% Now you have the picture placed in a floating, with the above text as caption and you can reference it like
%% \\ref{foo1} on page \\pageref{foo1}
@end tex
@end iftex

@sp 2
@table @code
@item Removeable Disk?
Does this drive contain a removable disk?@*
e.g.: floppy-, CompactDisc-, ZIP, MagnetOptical or SyQuest-drive.

If @code{Removeable Disk} is set to Off, then @code{Future Drive Accelerator}
does not need to know which FileSystem is used, to recognize a disk after re-inserting.@*
@result{} The initializing of the cache is faster.

@item Verify write
The data will be checked if it has been properly written.@*
@result{} Useful for floppy-disk and old hard-disks.

@item Write

@itemize @minus
@item @code{Through}@*
Data will be saved at once and moved into the cache at the same time
(write-retention).@*
@result{} When the data is read again, it can be accessed by the cache very fast.

@item @code{Sync}@*
Like @code{Through} with the difference that the data is written to the drive
@footnote{Syncron write-back, or the asyncron delay is started when:@*
- e.Update-command from FileSystem,@*
- e.Motor-off-command from FileSystem,@*
- If a program requests memory, and the cache (the whole RAM)
  is filled with data that has to be written back.@*
- Disk removed : ``You must replace Volume``@*
- If DiskSafe is installed : Before a Reset or a Guru.@*
- or if the cache is full with data to write (at least 7 free tracks)}
after the writing of the file was completed
@footnote{The end of the write-access is signalled explicit by the FileSystem
to make sure that a device, software- or hardware-cache in the hardisk has
written the data completely.
@*Most harddisks have an internal cache of 64 KB.}
.@*
@result{} The parallel reading and writing is done more gentle in multitasking.@*
@result{} The program waits for the end of the write-access (Syncron).

@item @code{Async}@*
Like @code{Sync}, but the program doesn't wait for the end of the write-access
(ASyncron). What means@: data is written in an instant.@*
@result{} Additionally, minimizes the overall seek time required to read or write data from or to
disk. Outstanding I/O requests are ordered such that they can all be performed
``@strong{with one sweep}`` of the disk head assembly, from the highest to the lowest disk
address (Elevator seeking).
@sp 2
The cache is written in the background.@*
@result{} You can write data to the cache, while the cache
is writing to the drive.@*
@xref{DataSafety, Datasafety}.

@item @code{Late as possible}@*
Like @code{Async} but the data is written as late as possible. This is recommended
for Cache-directories of World-Wide-Web browsers or Internetcomputer, where there
is (more or less) always data written.
@sp 2
Data is written when memory is needed or @code{Future Drive Accelerator} exits,
and, if DiskSafe is installed, before a Reset/System-crash.
@xref{Requirements}.

@item @code{For temporary}@*
Like @code{Late as possible} but data is NOT written before a Reset/System-crash.@*
@result{} This is useful for directories whose contents don't need to
be the same after the reset, for example@:: @file{env:} @file{t:}.

@end itemize

@item Async delay
For how many seconds shall the write-back be delayed with @code{Async}?

@item Size of Track
Number of bytes a track
@footnote{If only a @code{block} (part) of the @code{track} is read, the hardware
copies the whole @code{track} into a buffer and passes on only the requested
@code{Block}.@*
@code{Future Drive Accelerator} makes use of this behavior: It always reads
the whole @code{track} into the cache. Reading of a @code{Tracks} is a little
bit slower than reading a @code{block}.
slow hardware-head, which would be necessary for reading another @code{block}.@*
@result{} And the hardware isn't stressed because the requested @code{block} is
already in the cache.}
 requires in the cache.@*
@result{} How many bytes shall be @strong{read ahead}?@*
Reommended values are for harddisks and CDs about 40KB and for floppy disks 
(2 tracks = 1 cylinder).@*
If the harddisk is not fragmented, you could achieve a dramatic speed improvement
when you set a high value.@*
If you use two or more harddisks you should use the @strong{same} value for all
unit to avoid the fragmenting of memory.
This will be improved in future versions.

@item Cache usage priority
What priority has this drive compared to other drives for caching?
@end table

@sp 2

The buttons in the bottom row of the window can be used to
activate or deactivate the cache, and to get informations about the drive

@table @code
@item Enable
Cache active.

@item Info
Shows @ref{InfoWindow, informations} about the drive.

@item Disable
Cache inactive.
@end table

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Section: Preferences/InfoWindow                         ---
@comment ----------------------------------------------------------------
@node InfoWindow, , DeviceWindow, Preferences
@section Informations about the drive
@cindex Track
@cindex Block
@cindex Size of Block
@cindex Hardware, UnitNo
@cindex Device Software
@cindex Number of Tracks
@cindex capacity
@cindex First Track number
@cindex start position
@cindex Disk name
@cindex Unit number
@cindex Buffer memory type
@cindex 4 GigaByte capacity
@cindex NewStyleDevice (NSD)

@noindent This window shows informations about the selected drive.

@table @code
@item Size of Block
can be modified using the @code{HDToolBox@copyright{}AmigaInc.} or in the mountfile
in the directory @file{Devs:DosDrivers} (SectorSize * SectorsPerBlock).
But this is not recommend, because most programs depend on a value of 
@var{512} here.@*
@item No of Tracks
Number of tracks. Is also the capacity of the partition, floppy @dots{} multiplied with @code{Size of Track}.
@item First Track Number
Start postions of the partition on the harddisk.
@item Root Track
Depends on the FileSystem.
Is used by @code{Future Drive Accelerator} to recognize
a floppy/removable disk only.
@item Name and Dates Position
The position where the partition-name, the date of creation and the date
of the last modification can be found.
Is used by @code{Future Drive Accelerator} to recognize
a floppy/removable disk only.
@item Unit Number
Hardware Unit Number.
@item Device Name.
Name of the @code{Software-Device}.
@item Buffer Memory Type
Either Chip- or Fastmemory.
If ``Need! ChipMemory (slow)`` appears here, you should get more recent
@code{Device-Software}, or try to set @code{BufMemType}=@var{1} in @file{Devs:DosDrivers},
because the drive is slower than it needs to be. 
@item 4-GByte ``boundary``
If anything else than ``No problems`` appears here, then this partition is beyond the
``4 GB boundary``; you should make sure that you use a FileSystem and Software Device
that can handle harddisks bigger than @strong{4 GigaByte}. @xref{FileSystem installation}.
@item New Style Device
Supports the @code{Device-Software} the @code{new device standard}@code{@copyright{}AmigaInc.}?
@end table

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: View                                            ---
@comment ----------------------------------------------------------------
@node View, Copyright, Preferences, Top
@chapter How to quit and monitor @code{Future Drive Accelerator}
@cindex Monitor
@cindex Cache
@cindex quit
@cindex monitor
@cindex Windows
@cindex KILL FDA (Argument)
@cindex FLUSH Cache (Argument)
@cindex UPDATE Cache (Argument)
@cindex Sorted by (button)
@cindex Location
@cindex Track
@cindex Memory type
@cindex Size
@cindex Size of Track
@cindex Device Software
@cindex First Track number
@cindex start position
@cindex Disk name
@cindex Used
@cindex Old
@cindex Parti
@cindex Flags
@cindex Now Busy
@cindex Must Write
@cindex Medium
@cindex Partition
@cindex Virtual name
@cindex Unit number
@cindex Create
@cindex Modification
@cindex Page up (button)
@cindex Page down (button)
@cindex Top (button)
@cindex End (button)
@cindex Before Medium (button)
@cindex Next Medium (button)

@noindent @code{Future Drive Accelerator} can monitored and exited using 
@w{@code{Future Drive Accelerator View}}:
@sp 1

@noindent The monitor accepts Workbench Tool Types and shell parameters:

@table @code
@item KILL-FDA
Writes the cache to the drive (if necessary) and quits @code{Future Drive Accelerator}.

@item FLUSH
Flushes the cache, except for data that has to be written to disk.

@item UPDATE
Writes the cache to the drive (if necessary).
@end table

@sp 2

@code{Future Drive Accelerator View} is a by-product, which has helped
the author while developing @code{Future Drive Accelerator} to find the optimal 
algorithm
@footnote{The used algorithm is required to figure out which tracks is the
last in the queue. This is the oldest track, and if there are several tracks 
of the same age, the tracks with the smallest access counter is killed.@*
If you know a more effective algorithm, don't hesitate and let me know.}
for using the cache. The author didn't plan to release this program, but does
it now anyway for the curious ones.@*
Normally, @code{Future Drive Accelerator View} is only required to quit
@w{@code{Future Drive Accelerator}}.
@sp 3

The @strong{right} part of the window shows the current @strong{cache structure} (sorted).@*
Above this is a summary of the list, @strong{how many tracks are in memory} and
@strong{how many} of them are waiting to be @strong{written} to the drive.
On the @strong{left} side you can control how the list should appear.@*
Finally, at the top, you can see how much of the free memory
is used as currently as cache (@code{Avail Memory}).
@sp 1

A simplier statistic would be of no use, because the cache is always @strong{used at 100%}.
@sp 1

@table @asis
@item @code{Sorted by}
@table @asis
@item @code{Location}
Lists the @strong{memory areas} where the
cache-parts reside @footnote{The cache is a summary of different tracks.}.@*
The whole cache is listed.
@itemize @minus
@item @code{Location}
Start position of the track in memory.
@item @code{Type}
Memory Type
@item @code{Size}
Number of Bytes a tracks uses in the cache.
@item @code{Track}
Number of Track. No. 0 is the first.
@item @code{Used}
Number of accesses to the track.
@item @code{Old}
Time (in seconds) since the last access.
@item @code{Parti}
Logical partition- or drive-name.
@item @code{DiskName}
Virtual partition-, medium- or disk-name.
@end itemize
@sp 2
Above this is written how many tracks are @strong{in the cache alltogether} (all free memory)
and how many of that must still be written to the disk.@*
@item @code{Track}
Lists the @strong{cache-parts} of a partition, medium or disk.
@itemize @minus
@item @code{Track}
Number of track. No. 0 is the first.
@item @code{Location}
Start position of the track in memory.
@item @code{Type}
Memory typet.
@item @code{Used}
Number of accesses to the track.
@item @code{Old}
Time (in seconds) since the last access.

@item @code{Flags}
@itemize @bullet
@item @code{NowBusy}
Track is read or written.
@item @code{MustWrite}
Track must be written.
@end itemize

@end itemize
@*Above this is written how many tracks @strong{of the medium}
@footnote{A medium can be a partition, an inserted diskette/ a removable harddisk / CD
or a removed diskette@dots{}}
are in the cache and how many of that must be written to drive.
@sp 2
The next lines contain
@enumerate 2
@item the @code{Unit} the medium/partition belongs to, the name
of the @code{device} and the start postion (track-number) of the partition on the disk.
@item logical partition- or drive-name and virtual partition-, medium- or disk-name.
@item When the medium was created (formatted) and the date of the last modification. (Only FastFileSystem)
@end enumerate

@end table

@item @code{Page Up}
One page up.@*
@key{Cursor left, Shift+Cursor up}.
@item @code{Page Down}
One page down.@*
@key{Cursor right, Shift+Cursor down}.
@item @code{Top}
Top of the list.@*
@key{Key T}.
@item @code{End}
End of the list.@*
@key{Key E}.
@item @code{Before Medium}
Jump to the previous medium.
@item @code{Next Medium}
Jump to the next medium.

@end table


@comment ----------------------------------------------------------------
@comment --- Chapter: Copyright (for Info/AmigaGuide/HTML document)   ---
@comment ----------------------------------------------------------------
@ifinfo
@node Copyright, Author, View, Top
@comment  node-name, next   , previous, up (Section=>Chapter)
@chapter Copyright and other legal stuff
@cindex Copyright
@cindex Distribution
@cindex Legal Stuff
@cindex Permission
@cindex Prohibition
Copyright @copyright{} 1998-1999 Martin Tauchmann

This documentation may be copied and spread as long as the copyright note
and this copy permission remains unaltered in all copies.

@ignore
Permission is granted to process this file through TeX and print the
results, provided the printed document carries a copying permission
note identical to this one except for the removal of this paragraph
(this paragraph not being relevant to the printed manual).
@end ignore

@noindent COPYRIGHT

Copyright @copyright{} 1998-1999 Martin Tauchmann

@code{Future Drive Accelerator} is shareware. In this case, that means that you need
a personalized version of the program to use the full functionality of
@code{Future Drive Accelerator}.

Users get a personalized version when they have registered with me.
This personalized version may not be given to anyone else. To give away
the personalized version or to use versions of the program which you did not get
directly from me for your personal use, is considered sofware-piracy.


The personalized version may not be transfered, sold or exchanged to another person
or organization. It is solely for the use of the registered person.

You may not use any ``patches`` for @code{Future Drive Accelerator} or publish
them (regardless whether they are in text, binary or any other form), except with explicit
permission by me for the purpose of updating. Using patched or modified versions of
this program is considered software-piracy.


@noindent NO WARRANTY

There is absolutly no warranty for this software. Although the author has paid
attention on security of data, compatibility and speed while developing this
software, he can give no warranty that this program is 100% bug-free.
You are using this software solely on your own risk. The author cannot be held
responsible for any damages or loss of data that may be caused by this program.

@noindent DISTRIBUTION

The demo-version package is ``freely distributable``.
It may be copied on any media that is used to distribute free software,
for example: FD-disks, CD-ROMs, FTP-server and BBS systems.

@noindent The full version is not to be distributed.

No programm, document or file of this software package,
partly or completely, may be distributed with another software package
without the written permission of the author.

@noindent The demo-version may only be distributed complete
and unchanged.

To make sure that the archive is its original state, distributors
should only use the original archives:
@smallexample
@uref{http://de.aminet.net/pub/aminet/disk/cache/fda.lha,Aminet: @file{fda.lha}}
@uref{http://home.pages.de/~MartinTauchmann/fdaupdate.lha,World Wide Web: @file{fdaupdate.lha}}
@end smallexample
@sp 1

Programs and documentation may not be modified
The only exception is the use of archiving software like
@code{LHA, LZX, ZIP or TAR-GZIP/BZIP2}, as long as the files can be restored
unaltered.

The is no upper limit for distributions costs (cost for disks, tapes
or CD-ROMs, or for duplicating them). Such limits have proven harmful
for the idea of free software. In some cases, software has been removed
instead of lowering the price of a disk below the limit.

Although the author has not set such a limit, he wants to make clear
his opinion on the topic:

@itemize @bullet
@item This demo software should be available free to everyone, wherever
this is possible.

@item If you bought this demo software under normal conditions from a
PD dealer on a disk and paid more than 5DM/5$, you have @emph{certainly}
paid too much. Please don't support such practices and try to find a better
and cheaper source for your software.
@end itemize

@noindent RESTRICTIONS OF USE

@code{Future Drive Accelerator} may only be used in the way intended by
the author, this means it may only be executed on Amiga-computers running
AmigaOS. Reassembling, reverse engineering or translation of the source code
is forbidden.

The documentation and the program texts of @code{Future Drive Accelerator}
are protected by the same copyright as the program itself. This means
the documentation or program texts may not be altered or translated.

To avoid any misunderstandings: You MAY NOT translate the texts or documentation
for @code{Future Drive Accelerator} and distribute them. You must be authorized
by me as an official translator. Unauthorized translations of texts and documentation
are illegal, harm the copyright and will be removed from public software archives.

No program, document or file from this software package may, partly or completely,
be used on a machine which is

@itemize @bullet
@item used for the research, development, construction, test or
production of weaponary or any other militarical equipment. This includes
machines which are used for training purposes.

@item used by persons, who accept, support or use violence against
other persons (e.g. foreigners).
@end itemize
@end ifinfo
@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Author                                          ---
@comment ----------------------------------------------------------------
@node Author, Features, Copyright, Top
@chapter Where to send bug reports, comments and orders?
@cindex Addresses
@cindex Author
@cindex Contac addresses
@cindex EMail
@cindex Homepage
@cindex URL
@cindex HTTP
@cindex Postal address
@cindex Mail
@cindex World Wide Web

The author can be reached through the following addresses:

@table @asis
@item Postal addresse:

@example
      Martin Tauchmann
      Scheffelstr. 49
79102 Freiburg im Breisgau
      GERMANY
@end example

@item E-Mail:

@email{MartinTauchmann@@bigfoot.com}
@end table

Sometime you can find me in IRC at ``irc.uni-stuttgart.de``
in the ``#amiga``-channel as NickName ``Gaddis``.

@noindent There is also a @code{Future Drive Accelerator} homepage
in the World Wide Web, with cyberlinks to ``@strong{Super Find Engines}`` and many
other usefull cyberlinks:

@example
@uref{http://MartinTauchmann.home.pages.de,Germany}
@uref{http://bigfoot.com/~martintauchmann/,U.S.A.}
@end example

@noindent The @code{Pretty Good Privacy} (@sc{PGP}) ``PublicKey`` is available with @code{Finger}, or via @uref{http://horowitz.surfnet.nl:11371/pks/lookup?op=index&search=0xF74B8D1D,WWW}.

ICQ, aka UIN is on my HomePage.

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Features                                        ---
@comment ----------------------------------------------------------------
@node Features, Future, Author, Top
@chapter Compatibility, Features of @code{Future Drive Accelerator}
@cindex Features
@cindex Compatibility
@cindex @code{Future Drive Accelerator}
@cindex Smart-Power-Technologie
@cindex Power-LED
@cindex read-ahead
@cindex SmartCache
@cindex supported devices
@cindex NewStyleDevice (NSD)
@cindex Floppy
@cindex SCSI
@cindex IDE
@cindex ATA(PI)
@cindex hard disk
@cindex CompactDisk
@cindex ZIP
@cindex DiskExpander
@cindex XFH
@cindex DiskSafe
@cindex Virtual-Memory-Manger (VMM)
@cindex supported FileSystems
@cindex ProfiFileSystem(PFS)
@cindex FastFileSystem(FFS)
@cindex Ami-FileSafe(AFS)
@cindex SmartFileSystem(SFS)
@cindex MessyFileSystem(MSD)
@cindex CrossDOSFileSystem(MSD)
@cindex FastFileSystem(FFS)
@cindex Berkeley (NetBSD/LinUX) Fast FileSystem(BFFS UNI\02)
@cindex NetBSD Berkeley Fast FileSystem(BFFS UNI\02)
@cindex LinUX Berkeley Fast FileSystem(BFFS UNI\02)
@c @cindex CBM 1541 (C64) FileSystem
@c @cindex C64 CBM 1541 FileSystem
@cindex PFS
@cindex FFS
@cindex BFFS
@cindex UNI\02
@cindex AFS
@cindex SFS
@cindex MSDos
@cindex 4 GigaByte capacity
@cindex Dos-Buffers
@cindex DataSafety

@itemize @bullet

@item Accelerates all kind of media e.g.*: Harddisk-, Floppy-, Compact-, ZIP, MagnetOptical- or SyQuest-drives, almost like a RamDrive.
@item Uses the
@ifhtml
<BLINK>
@end ifhtml
 @code{@strong{free memory}}
@ifhtml
</BLINK>
@end ifhtml
as
@ifhtml
<BLINK>
@end ifhtml
@code{@strong{cache}}
@ifhtml
</BLINK>
@end ifhtml
, the program reacts automatically on changes in memory resources, so that you
will always get the maximum speed for your drives. Even ``resources-hungry``
programs will get enough memory.
@item Minimizes the overall seek time required to read or write data from or to
disk. Outstanding I/O requests are ordered such that they can all be performed
``@strong{with one sweep}`` of the disk head assembly, from the highest to the lowest disk
address (Elevator seeking).
@item Gentle, parallel reading and writing in Multitasking.
@item Smart-Power-Technologie: Minimizes the number of disk-accesses.
@item SmartCache: Read-ahead of blocks.
@item When disks are removed, the cache is only removed if necessary.
When disks are re-inserted, the cache will be used again.
@item No fragmentation of memory. (Opposite to DynamiCache.)
@item Can possibly save memory, because dos-buffers are not required anymore.
@item Power-LED flashes when accessing cache.
@item Verify is as fast as in a copy-program, because data is verified in the background while writing.
(the processor isn't used much while writing anyway).
@item If @code{DiskSafe} is installed, the cache will be written before a reset or system-crash
restarts the computer. @xref{Requirements}.
@item Supports @uref{http://de.aminet.net/pub/aminet/util/pack/epu14.lha,@code{DiskExpander}}, @code{Virtual-Memory-Manger (@sc{VMM})}, @uref{http://de.aminet.net/pub/aminet/util/pack/XFH.lha,@code{@sc{XFH}}} @code{temporal files} and @code{World-Wide-Web browsers}.
@item Supported devices: (probably all
@itemize @minus
@item @uref{http://www.amiga.de/files/index.html,scsi}, 2nd.scsi, NewStyleDevice,
@uref{http://de.aminet.net/pub/aminet/disk/misc/IDEfix97.lha,atapi}, cybscsi,
@item trackdisk, @uref{http://de.aminet.net/pub/aminet/disk/misc/floppy43.lha,floppy}, @uref{http://de.aminet.net/pub/aminet/disk/misc/Diskspr3.lha,diskspare}, @uref{http://de.aminet.net/pub/aminet/disk/misc/NewHackdisk.lha,hackdisk}, mfm.device (@copyright{}CrossDOS), @uref{http://de.aminet.net/pub/aminet/misc/emu/msh-156.lha,messydisk},
@item @uref{http://de.aminet.net/pub/aminet/disk/misc/fmsdisk.lha,fmsdisk},
@item @uref{http://de.aminet.net/pub/aminet/util/pack/xpkDisk37_8c.lha,xpkdisk},
@item cd.
@end itemize

@item Supported FileSystems: (All knownn)
@itemize @minus
@item FastFileSystem(FFS),     @uref{http://de.aminet.net/pub/aminet/disk/misc/ffstd64.lha,V44.5} @uref{ftp://ftp.amiga.com/pub/,V43.20}
@item @uref{http://de.aminet.net/pub/aminet/disk/misc/pfs95.lha,ProfiFileSystem1+2(PFS)}, @uref{http://www.greed.nl,HomePage}
@item @uref{http://de.aminet.net/pub/aminet/biz/demo/afsdemo159.lha,AmiFileSafe(AFS)},
@item @uref{http://www.xs4all.nl/~hjohn/SFS/,SmartFileSystem(SFS)},
@item @uref{http://de.aminet.net/pub/aminet/misc/emu/msh-156.lha,MessyFileSystem(MSD)},
@item CrossDOSFileSystem(MSD) (@copyright{}CrossDOS),
@item @uref{http://de.aminet.net/pub/aminet/misc/emu/bffs1.3.lha,@w{Berkeley (Net@sc{BSD} Lin@sc{UX}) Fast FileSystem (BFFS UNI\02)}}.
@c @item @uref{http://de.aminet.net/pub/aminet/misc/emu/FS1541-13.lha,@w{CBM 1541 (C64) FileSystem}}.
@end itemize

and compatible, furthermore all MultiUser-``clones``.

@item Supports FileSystems with a variable block-size.
@item Supports harddisks with a capacity of 4 GigaByte or more.
@item Protects partitions beyond the 4 GigaByte ``barrier`` from faulty accesses.
@item Is the fastest cache program. Accelerates harddisks by the @strong{factor 2}-@strong{20}, floppy disks by the @strong{factor 2}-@strong{997}.
@end itemize


@ifinfo
@menu
* FileSystem installation::   How to use harddisks bigger than 4 GigaBytes
* DataSafety::                What you should know when using ProfiFileSystem-2 and SmartFileSystem
* SCSIdevice installation::   Better use for @sc{ATA[PI]} drives
@end menu
@end ifinfo

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Section: Features/FileSystem installation                ---
@comment ----------------------------------------------------------------
@node FileSystem installation, DataSafety, , Features
@section How to use harddisks bigger than 4 GigaBytes.
@cindex FastFileSystem V44.5
@cindex 4 GigaByte capacity
@cindex L: directory
@cindex RigidDiskBlock
@cindex Harddisk, boot
@cindex HDToolsBox

Type @kbd{VERSION HD0:} into a shell, to find out if version @uref{http://de.aminet.net/pub/aminet/disk/misc/ffstd64.lha,@var{44.5}} or @uref{ftp://ftp.amiga.com/pub/,@var{43.x}}
of the FastFileSystems is installed.
@sp 2

The @strong{new @code{FastFileSystem}} version
@footnote{or SmartFileSystem_SCSIdirect, ProfiFileSystem-2_SCSIdirect.}
must be installed into the @strong{RigidDiskBlock (RDB)} using @code{HDToolBox}.
Copying to the L: directoy is not enough.
@footnote{FastFileSystem V44.5 is not compatibele with @code{vdisk.device, statram.device, diskspare.device and fms.device}}


If you have more than one harddisk on your Amiga, @strong{the @code{FastFileSystem} is loaded @emph{only} from the @code{Boot-Unit-HardDisk-RDB}}.
So you have to install the new @code{FastFileSystem} into the
@code{Boot-Unit}; but of course doesn't it do any harm if all @code{Unit-HardDisk-RDB}'s are updated@.

Reformatting of the @code{partitionen}
@code{@strong{is not required}}, this means@: the files remain accessible with the@*
@uref{http://de.aminet.net/pub/aminet/disk/misc/ffstd64.lha,new FastFileSystem}.
The new @code{FastFileSystem} works of course with @code{@strong{IDE-drives}}, too.
@sp 2

@noindent @strong{How do you update the @code{FastFileSystem}?}@*
Start the program @file{SYS:Utilities/HDTools/HDToolsBox}:@*
@c box with rounded corners, in the printed manual.
@cartouche
@ifhtml
<TABLE BORDER=3><TR><td align=left>
@end ifhtml
Select your @code{Boot-HardDisk}, `Partition Drive`, `Advanced Options`,
`Add/Update...`, @strong{now you can see which version is running in your Amiga},
`Update File System...`, enter @kbd{l:FastFileSystem}, `OK`, @strong{now it
should read Version: @var{44} and Revision: @var{5}}, `OK`, `OK`, `OK`,
`Save Changes to Drive`, `Exit`.
@ifhtml
</TD></TR></TABLE>
@end ifhtml
@end cartouche

@ifinfo
@menu
* DataSafety::                What you should know when using ProfiFileSystem-2 and SmartFileSystem
* SCSIdevice installation::   Better use for @sc{ATA[PI]} drives
@end menu
@end ifinfo

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Section: Features/DataSafety                              ---
@comment ----------------------------------------------------------------
@node DataSafety, , FileSystem installation, Features
@section DataSafety
@cindex DataSafety
@cindex ProfiFileSystem(PFS)
@cindex SmartFileSystem(SFS)
@cindex validate
@cindex power cut
@cindex Write async (button)
@cindex Write sync (button)

@noindent The datasafety of the @code{FastFileSystem} is extended
with @kbd{Write Async} in the case of a power cut.
@sp 2

@noindent The @code{ProfiFileSystem-2} and the @code{SmartFileSystem}
provide datasafety even in the case of a power cut, the
medium is always ``validated``.@*

The medium is kept ``validated`` by saving the structure-organizing data
to the disk immediatly.@*
@result{} You could image this as a tree, whose branches have always to be present,
the leaves (files) may grow or fall off without harming the tree itself.@*
New leaves are written to the ``list of existing leaves`` when the completely
grown up. @result{} Of course, files which were saved during the power cut are lost.

To maintain a valid structure on the medium, the FileSystem must not loose control
about the moment of writing, this means@: the structure must be written
``syncron``.@*
@result{} @kbd{Write Async} may not be activated, to ensure datasafety during a power cut.

@kbd{Write Async} can be activated, if there is @strong{enough free memory} available
to cache the @strong{@sc{WHOLE}} write-process.@*
@result{} The medium is always ``validated``.

In future versions, using a new FileSystem, datasafety will be maintained
during a power cut, even with low memory, using @kbd{Write Async}.
The important structure data (tree) is written ``Syncron`` and the files (leaves) ``Asyncron``.

@ifinfo
@menu
* FileSystem installation::   How to use harddisks bigger than 4 GigaBytes
* SCSIdevice installation::   Better use for @sc{ATA[PI]} drives
@end menu
@end ifinfo

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Future                                          ---
@comment ----------------------------------------------------------------
@node Future, History, Features, Top
@chapter What will happen to @code{Future Drive Accelerator}?
@cindex Future
@cindex QNX
@cindex ProfiFileSystem(PFS)
@cindex languages
@cindex oo2c
@cindex Oberon-2 (language)
@cindex Amiga E (language)

@noindent The oracle foretells:

@itemize @bullet
@item Porting to the new @dfn{AmigaOS} @sc{qnx}.
@item New memory-routines. @xref{Known Bugs, Known bugs}.
@item Better cooperation with @sc{pfs-2} to ensure datasafety during a power-cut.@xref{DataSafety}.
Furthermore a speedup, because @sc{PFS-2} reads and writes directly in the cache.
@item Translating the documentation in several languages.

@item Porting of @uref{http://www.uni-kl.de/OOC/,oo2c}
to the Amiga, which makes it possible, thanks to @sc{GNU-C (GCC)}, to develop Oberon-2 programs for
any platform. @code{Oberon-2} is almost identical to @code{Amiga E}, @code{ADE 95 (gnat)}, @code{Modula/Pascal} and @code{Cluster}.

@item Porting of @uref{http://reality.sgi.com/boehm_mti/,Garbage Collector}
to the Amiga. Replaces C @code{malloc}, C++ @code{new} as well as C string (cord)
which is used for fast string operations.

@item New ixemul.library version.
@end itemize

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: History                                         ---
@comment ----------------------------------------------------------------
@node History, Other Products, Future, Top
@chapter Development history of @code{Future Drive Accelerator}
@cindex History
@cindex Checksum error
@cindex SCSI-direct
@cindex TrackDisk64
@cindex Font

@table @asis

@item 1.4, Release date 7-Mai-99
@itemize @bullet
@item Brandnew documentation. (Guide, HTML, PS, DVI)

@item @code{Size of Track} is now variable.@*
@result{} Possible to read more data, before they are needed (read-ahead).
@result{} No fragmentation of memory, if all Units set to the @strong{same} @code{Size of Track}.

@item Support Virtual-Memory-Manger (VMM). Make in VMM-Prefs Code=No Data=No Program=FDA.

@item Fixed, could hang sometimes 1/1.000.000, while writing back Cache.@*
Because, AbortIO of the Timer Device of OS3.0 has a bug.
The Vertical-Blank-Interrupt can jump between the CheckIO and
AbortIO of the time-request.@*
@result{} Now doesn`t use AbortIO. Restart the Timer if it came back to early.

@item Fixed, Checksum-Error, if HD has a capacity more than 2GB (2^31 ``SignedLongWord border``).@*
Because, Oberon has no support for ULongWord (UnSigned).@*
Replaced all DIV in uDIV, and MUL in uMUL.@*
IF (highCyl+1) * surfaces > MAX(LONGINT) DIV ASH(SizeOfTrack,-1) THEN
/* HD > 4 GB */@*
@strong{Thanks to Timo Murzo (Master.T.M)     Sysop of Unity Mailbox Hamm}@*
@strong{Thanks to Michael Kilimann}@*
@strong{Thanks to Denis Zwornarz}@*
@result{} Current limit is 1126 GB.

@item No further translation of SCSI-direct commands into TrackDisk commands.@*
If @sc{FDA} is called with a SCSI-direct command, it uses the same command@.
@result{} FFS V44.5 and the special SCSI-direct Versions of PFS-2 and SFS,
have no limits (1126 GB) about the HardDisk size. @xref{FileSystem installation}.

@item If the cache (whole memory) is full of data and any other program
needs memory, the cache will be written back (flush) and than is memory
free again.

@item Update-Task (writing back) priority is now one higher than Unit-Task (read/write).

@item Fixed, Enforcer hits.@*
@strong{Thanks to Michael Kilimann}

@item Added ChangeInterrupt. CD-Drives need this, to detect a DiskChanges.@*
Excluded �mfm.device� V40.9 (21.05.93), �multidisk.device� and �xpkdisk.device� V37.8, because they had a
BUG while removeChangeInt.@*
Device developer: Please, take a look at HackDisk.device Assembler-SourceCode.@*
@strong{Thanks to Marc Michael (yogi)}

@item Dos-Buffers set to 7.

@item Fixed, Dos-Buffers not freed if ``QUIET`` was used.

@item Supported Berkeley (Net@sc{BSD} Lin@sc{UX}) Fast FileSystem.@*
@result{}protStatus Command detect ``Disk Inserted`` and Motor off interpeted
as ``update`` Command.@*
Set the Dos-Buffers of Berkeley (Net@sc{BSD} Lin@sc{UX}) Fast FileSystem to @var{456},
because lower values made read errors (found with DiskSpeed V4.2).

@item One timer for one Partition, not only one for the whole Unit.

@item Fixed, don`t turn off the DiskFloppy motor at some systems.@*
Motor command is again back in the waiting queue.@*
Developer: Imagine, if you're using SendIO instead of DoIO, the execution is
@strong{a}sync not only by reading and writing also with the
changeState, motor, protStatus, remove, changeNum @dots{} commands.@*
@strong{Thanks to Herbert Pittermann}@*
@strong{Thanks to J�rg Liebelt}

@item Spared one uDIV Processor instruction. (A modulation and a division in an
single uDIV instruction.)@*
@result{} Little bit faster.

@item Little speed up, if an SCSI-direct FileSystem is used.

@item Uses exec.GetMsg only if an Message is available (Port.msgList.head^.succ<>NIL).@*
@result{} Little bit faster (0.44%-0.51%).

@item Fixed, printed @var{-1}, at verify requester as Track number.

@item Fixed, verify retry.

@item Fixed, no error number result if an update error exists in @code{Sync-writing-mode}.

@item Fixed, can`t find the icon. @key{QUIET} Tooltype now working.@*
@result{} No window opening, if it's started from WBStartup-Drawer.@*
@strong{# Thanks to Harald W�nsche}

@item Windows are now simple-refresh.@*
@result{} spares ChipMemory.

@item Reduced Stack allocation.

@item DSG (Benchmark-Statistics) is now able to read DiskSpeed V4.2 results, but it can`t display values greater than 9.9MB.

@item Added Blizzard-IV (030 50Mhz) Accelerate-Card benchmarks in the guide.
@item Added PPC604 233MHz 060 50MHz Accelerate-Card benchmarks in the guide.

@item Prefrences:
@itemize @minus
@item Renamed the Options.
@item Removed ``Write-Retention off``.
@item Replaced ``ASync-update-writing`` with ``Write async = 0 sec``.
@item Added ``Write as late as possible``, for Cache-directorys of WWW-Browsers.
@item Added ``Write for temporary``, for t: env: directorys.
@item Now, quick toggle device with Shift+LeftMouse.
@item Converted ``low Track`` to ``low Cylinder``.
@item Device-List gagdget uses the default font, fall back to the topaz.font,
if the other text font is proportional or the default font is also proportional.@*
@strong{Thanks to Andrew Mowatt}@*
@strong{Thanks to Fr�d�ric Laboureur (Fred)   AlphaSOUND - FANTAISIE Software (1998)}
@item Added ``Size of Block`` of FileSystem in Info.
@item Used really New-Look-Menus.
@item Fixed, menu ``LastSaved`` and ``Restore``.
@item Fixed, Argumente ``USE`` and ``SAVE``.
@item Reinserted ``USE``.
@item Fixed, division by zero trap, if no FastMem available.@*
@strong{Thanks to Flemming Steffensen}
@item Fixed, division by zero trap, if ``blocks per track`` or ``surfaces`` are zero. (NewPortHandler)@*
@strong{Thanks to Flemming Steffensen}
@item Fixed, trap if BlockSize<>0.@*
@strong{Thanks to Carsten}
@item Fixed, no NewStyleDevice detection if anoter unit as zero are used.
@end itemize

@item View:
@itemize @minus
@item View uses the default font; if it`s proportional and the size isn`t
8x8, it falls back to the topaz.font.@*
@strong{Thanks to Herbert Pittermann}@*
@strong{Thanks to Helge B�hme}
@item Use New-Look-Menus.@*
@strong{Thanks to Fr�d�ric Laboureur (Fred)   AlphaSOUND - FANTAISIE Software (1998)}
@item Fixed, bad DiskName if another ``Size Of Block`` as 512 is used.
@end itemize

@item In the Demo Version is writing now possible, but only the half free memory can
be used by two drives as cache.

@item Price increased by 4.99DM to 19.99DM.
@end itemize


@item 1.2, Release date 20-Aug-98
@itemize @bullet
@item Speed up Read/Write little bit.

@item Preferences: �Not used Memory� Proportional-Gadgets are now in
Percentage and KiloByte.@*
@strong{Special thanks to Andrew Mowatt}

@item Better communication between the filesystem and FDA.@*
Should fix occasional hangings in the previous release.

@item Fixed, detect Partitions after 2-GB as 4-GB Partitions.
Support 4-GB HDs is more possible.@*
@strong{Thanks to Timo Murzo (Master.T.M)     Sysop of Unity Mailbox Hamm}

@item Preferences
@itemize @minus
@item Used New-Look-Menus and scale checkboxes.@*
@strong{Thanks to Fr�d�ric Laboureur (Fred)   AlphaSOUND - FANTAISIE Software (1998)}

@item Unnecessary �Can�t open x.device� removed, if it is not a New Style Device.@*
@strong{Thanks to Marc Michael (yogi)}
@end itemize

@item Nicer looking MWB icons.@*
@strong{Thanks to Fr�d�ric Laboureur (Fred)   AlphaSOUND - FANTAISIE Software (1998)}

@end itemize


@item 1.0, Release date 20-Jul-98
@itemize @bullet
@item Added SmartFileSystem benchmarks in the guide.
@item Write operation a little bit faster.
@item Fixed, StartUp RangeCheck trap, if @code{Size of Track} > 131072.
@item Dos-Buffers set to 20.
@item Supports NewStyleDevice: (NSD) 64-Bit Commands (4GB border).
@item Supports scsiCmd (4GB border).
@item Preferences
@itemize @minus
@item Include more ``big`` HDs.@*
@strong{Thanks to Timo Murzo (Master.T.M)     Sysop of Unity Mailbox Hamm}
@item DeviceCompatible removed.
@end itemize

@end itemize


@item 0.98, Release date 04-Jul-98
@itemize @bullet
@item Supports Partitions after the 4GB border (not tested).
@item Speedup Read & Write operations.
@item Preferences
@itemize @minus
@item Includes LateBinding-Devices.
@item Preferences: Removed bugy ``USE``.
@end itemize

@end itemize


@item 0.96, Release date 25-Mar-98
@itemize @bullet
@item First puplic release @@ the AmiNet.
@end itemize

@end table

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Other Products                                  ---
@comment ----------------------------------------------------------------
@node Other Products, Credits, History, Top
@chapter Other products
@cindex Future Copper Producer
@cindex LinUX
@cindex Copper
@cindex Convert
@cindex Picture
@cindex Exec library
@cindex TeX

@noindent From the same author:

@itemize @bullet
@item @uref{http://de.aminet.net/pub/aminet/gfx/edit/FCP.lha,Future Copper Producer}
@itemize @minus
@item Convert Pic -> CopperList  (6BitPlane -> 0 BitPlane CopperList)
@item CopperListEditor
@item CopperListSearcher
@item Full Modula-2 SourceCode
@end itemize

@item @uref{http://de.aminet.net/pub/aminet/comm/misc/TelekomBill.lha,Telekom Bill}@*
German Phone-Bill calculater for WG�s
@item @uref{http://de.aminet.net/pub/aminet/gfx/show/ActiveWinPic.lha,Active Window Picture}@*
displays pictures in any window, especial SHELL.
@item @uref{http://de.aminet.net/pub/aminet/misc/unix/File2Partition.lha,File 2 Partition}@*
Spares memory if Lin@sc{UX} is installed, stores files direct to HD, Disks or any LogicalDevice
@item @uref{http://de.aminet.net/pub/aminet/util/boot/IsInserted.lha,Is Inserted?}@*
StartUp-Check if a Disk inserted then start BootUte, or any @dots{}
@item @uref{http://de.aminet.net/pub/aminet/mods/slow/BrainBird.lha,BrainBird}@*
Shaman drums to meditate and 14 Ambient/NewAge/Music concrete Songs.
@item @uref{http://de.aminet.net/pub/aminet/dev/asm/ExecDis.lha,Exec.library disassembly}@*
A commented disassembly of the exec library 1.2.
@item @uref{http://computer.freepage.de/tauchmann/PasTeX-SuperHighRes.lha,PasTeX ShowDVI-SuperHighRes EpsonMedium/Low} (5.1 MB)@*
SuperHighRes & Epson medium pk-fonts, other resolutions possible.@*
@result{} Display 9PinPrinter ``Quality`` on Screen.
@end itemize

@sp 2
@noindent From other authors (in Aminet):

@itemize @bullet
@item Better Amiga feeling@*
@itemize @minus
@item @uref{http://de.aminet.net/pub/aminet/util/wb/Copper-Demon.lha,Copper-rainbows on ALL pubscreens}.
Needs @uref{http://de.aminet.net/pub/aminet/util/libs/ScreenNotify10.lha,ScreenNotify.library},
@item @uref{http://de.aminet.net/pub/aminet/biz/cloan/PPaint64.lha,PersonalPaint} AnimBrush (16 colors) as @uref{http://de.aminet.net/pub/aminet/gfx/aga/AnimPoint10.lha,Mouse-Pointer}, needs AGA/3.0
needs @uref{http://de.aminet.net/pub/aminet/util/cdity/qmouse290.lha,QMouse} to blank pointer, because MultiCX can`t do it.
@item @uref{http://de.aminet.net/pub/aminet/util/boot/pointerx.lha,Animated Busy Pointer Hack}.
@item @uref{ftp://ftp.uni-stuttgart.de/pub/systems/amiga/amok/amok080/TimeAndMem.lha,Time and Mem} in the Shell-Prompt.
@item @uref{http://de.aminet.net/pub/aminet/util/misc/AntiTopaz.lha,AntiTopaz} Substitutes topaz with system default font.
@end itemize

@item Relax Music
@itemize @minus
@item @uref{http://de.aminet.net/pub/aminet/mods/slow/DI-*.lha,DI-* ``MagneticNorth``}.
@end itemize

@end itemize

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Chapter: Credits                                         ---
@comment ----------------------------------------------------------------
@node Credits, Speed up, Other Products, Top
@chapter The author wants to thank@dots{}
@cindex Credits
@cindex Thanks

The development would have been impossible without the feedback of some
@code{Future Drive Accelerator} users. Many ideas and features came from
these sources@dots{}
@sp 2
@noindent So I'd like to thank the following persons:
@sp 1

@table @asis
@item For  Alpha-/Beta-Tests, ideas & bug-reports:
Fr�d�ric Laboureur, Michael Kilimann, Denis Zwornarz, Andrew Mowatt,
Marc Michael, Herbert Pittermann @strong{Kisses for you sweet Kids},
Harald W�nsche, Timo Murzo, J�rg Liebelt, Flemming Steffensen,
Helge B�hme, Andreas, Carsten.

@item For the translations:
The Amiga Translators Organization @uref{http://ato.vapor.com,(@sc{ATO})}@*
Jens Neubauer @email{jens.neubauer@@gmx.de}

@item For proofreading:
Gregor Knechtges@*
Heiko Hayn @email{Smeagel@@gmx.net}

@item Malcolm Harnden
For supporting the PPC Amiga.

@item Fred Fish
Without your @strong{excessive} commitment for the Amiga, I hardly would have gotten
those bits and bytes to feed my curiosity. Your new
@uref{ftp://ftp.unina.it/pub/amiga/geekgadgets/amiga/m68k/snapshots/current/,GeekGadget}
Project with the GNU ports is @strong{very praiseworthy}.@*
The text you read at the moment has to be partly credited to Fred Fish
because it is written in @code{Texinfo}.

@item Reinhard Spisser and Sebastiano Vigna
for the Amiga-port of ``makeinfo``.

@item Michael Marte, Hamish Macdonald, Geert Uytterhoeven, Chris Lawrence,
Joerg Mayer, Martin Apel, Richard Hirst, Roman Hodek, Thomas Kruse,
Benjamin (Benni) Lorenz, Odd-Jarle Kristoffersen, Jes Sorensen, Ron Flory @dots{}
 (@sc{MC 680}xx Lin@sc{UX})@*
I can't find words.

@item Kamil Iskra, Philippe Brand, Fred Fish, Leonard Norrgard, Hans Verkuil, Gunther Nikl, Anders Wegge Jakobsen (@sc{GNU C} Compiler)@*
You made it possible to program for every platform.

@item Dirk Busse (CopyMemQuicker)@*
Thanks to your optimising, the cache has become even more faster. @xref{Speed up}.

@item Matthew Dillon
Without your @strong{DME} (programable text-editor) maybe I had never started typing.

@item Friedjof Siebert
Without your damn-fast Oberon-compiler, it would have been only half as much fun.

@item Amiga Modula Oberon Klub Stuttgart @sc{AMOK}
Your enthusiasm dragged me on. Where do you get all these good ideas from?

@item Niclaus Wirth
Brought light into the darkness, finally one can read the programs.

@item Jonathan Potter
Please stay with us. From ScreenX to DOpus, you evolved very much.

@item Ralph Babel
Very dry, interesting book, in which sect are you now?

@item Commodore, AmigaInc. @dots{}
Don't dare to drop the Amiga like the Hippis the `68er.
The Amiga is the Harley among the platforms.

@item Telekom
He, I still don't have a modem.

@item Quasar (White Box), CodX (Dialer/UnlimitedAcces)
Really clever how you fooled the Telekom back then.

@item William Gibson
Great books, I still don't understand one word.

@item William Gaddis
Master of the dialogue, pity that your time is over.

@item Nico Fran�ois
PowerSnap is just great!
RequesterTools anyway.
PowerPacker was a must in times when buying a harddisk costed a fortune.

@item Georg H�rmann @sc{XFD}
Fixed the old bugs in the decrunchers.

@item ASDG @sc{FACC}
Your FloppyAccelerator inspired me.

@item TURBOBRAIN (D-Copy)
Your @uref{http://de.aminet.net/pub/aminet/disk/misc/DCopy31.lha,D-Copy}
finally brought X-Copy to an end.

@item Georg He�mann
Your Pas@TeX{} made the Amiga able to print.

@item ? SoundTracker+
The author is unknown, so I just thank@*
Tracer and DOCTOR MABUSE and UNKNOWN of D.O.C and MnemoTroN / Silicon League,@*
TIP of THE NEW MASTERS.

@item BAMIGA SECTOR ONE, RED SECTOR @dots{}
Great intros, just very old.

@item Kai Nickel (MathX)
Another remnant of AMOK.
Abitur (school leaving examination) is impossible without your program.

@item TRIAD (TitanicsCruncher)
Without your cruncher, one would have to buy RAM all the time.

@item Bert Jahn @uref{http://www.fh-zwickau.de/~jah/whdload/,WHDLoad}, Jean-Fran�ois Fabre @uref{http://perso.club-internet.fr/jffabre/amiga/patches.html,JST}
Good work, finally the classic games work with @sc{AGA}, too, and can be loaded
quickly from the harddisk.

@item BullFrog (Populous, Powermonger@dots{})
It is real fun to play god.

@item John Matthews (MultiPrint)
What did I have to suffer from print-programs until I found
yours! Well, the handling could be easier.

@item BootX VirusX VirusZ @dots{}
I believe it was you who killed these poor viruses; and
if not you, then it was OS2.0.

@item Zeitschrift Computing @sc{C-16}
I find it impossible to print programs on dozens of pages, which you had
to type into your computer to play something.

@item Commodore C-16 @sc{Plus 4}
Was fun, especially because you could press some keys and break and disassemble and debug
any given program.

@item Forum InformatikerInnen fuer Frieden und gesellschaftliche Verantwortung @sc{FIFF} e.V.
@itemx Pretty Good Privacy @sc{PGP}
Thanks for telling the people about the governmental fooling.

@item Michael Sinz (MKSoft Development), Bryce Nesbitt
Without DiskSpeed, no one had told me it was getting better.@*
The Enforcer is absolutly necessary for debugging.

@item Martin Mares (MJSoft System Software)
Your Resident Module Launcher, and SKick are really good, now you don't have to buy
several ROMs each time.

@item Valenta Ferenc (Copper-Demon)
Great feeling.

@item Sylvain Rougier (ParM)
Your ParM is my ToolManager.

@item Stefan Becker (ToolManger)
I used the structure of your documentation.

@item Richard K�rber (PatchWork)
@xref{Known Bugs}.

@item Thomas Richter (SaferPatches)
@uref{http://de.aminet.net/pub/aminet/disk/salv/DiskSafe.lha,DiskSafe} is a nice little tool.@*
Your @uref{http://de.aminet.net/pub/aminet/util/misc/SaferPatches.lha,SaferPatches} solved the problem!

@item Harry Sintonen (HackDisk)
Your HackDisk assembler-sourcecode answered my questions.

@item Urban Dominik M�ller, Dirk St�cker, Bryan Ford and Christian von Roques
Your @sc{xpk}-system is without competition.

@item all users who decided to register Future Drive Accelerator.

@end table

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix: Speed up                                       ---
@comment ----------------------------------------------------------------
@node Speed up, Mark Bad Memory, Credits, Top
@appendix How to speed up @code{Future Drive Accelerator} even more
@cindex CopyMem(Quick) (OS)
@cindex SCSIsynchron-Flag
@cindex RigidDiskBlock
@cindex Harddisk, boot
@cindex PoolMem
@cindex NoRamReverse

@noindent So you can make @code{Amiga} faster.
@sp 1

Install a CopyMem(Quick)
@footnote{CopyMem(Quick) is used to copy data between cache and system memory.}
Replacement for your processor type:@*
@uref{http://de.aminet.net/pub/aminet/util/boot/COPMQR28.lha,68000}
@uref{http://de.aminet.net/pub/aminet/util/boot/CMQ030.lha,68020}
@uref{http://de.aminet.net/pub/aminet/util/boot/CMQ060.lha,68040+}
The @sc{MCP} replacement shouldn't be used, because it is slower than these versions.
@sp 1

Set the SCSIsynchron-Flag in the RigidDiskBlock of your boot-harddisk with@*
@uref{http://de.aminet.net/pub/aminet/disk/misc/RDBFlags-1.3.lha,@code{RDBFlags}}.
@sp 1

Don't use ChipMemory as cache, and set
@code{not used ChipMem} in the preferences, to @kbd{100%}. @xref{MainWindow,Das Hauptfenster}.
@sp 1

If you use the program @code{PoolMem}, start it with the argument @kbd{NoRamReverse}.

@ifinfo
@sp 2
@menu
* SCSIdevice installation::  Better use of @sc{ATA[PI]} drives
* TurboBoards::              General speedup for turboboards
@end menu
@end ifinfo

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix Section: Speed up/SCSIdevice installation       ---
@comment ----------------------------------------------------------------
@node SCSIdevice installation, TurboBoards, , Speed up
@appendixsection Better use of @sc{ATA[PI]} drives
@cindex SCSI Device
@cindex Hack
@cindex File Monitor
@cindex NewAlertH
@cindex AddModule
@cindex FastFileSystem V43.20

You don't have Amiga@sc{OS 3.1} and want to install the newest update of the
@footnote{The hack als works with@*
@uref{ftp://ftp.amiga.com/pub/,FastFilesystem V43.20}}
@uref{ftp://ftp.amiga.com/pub/,@code{scsi.device}} to get a better performance?
(especially together with ATA[PI] drives)

@strong{Attention!} There is no guarantee for this hack.
@footnote{The hack removes an alert which informs the user that no OS3.1 is installed.}
The modified file may not be distibuted.

@noindent The hack works on an 1200 with OS 3.0.

@enumerate
@item Rename the file @file{a300.ls.strip}, if you use an Amiga 1200
@footnote{If you have another Amiga, please read the @file{readme}
text in the update-archive, to find out which file is the best for you.}
, to @file{scsi.device}, and copy it into the @file{Devs:} directory.

@item Load @file{scsi.device} V43.xx into a file-monitor:@*
Search for @var{$0c6c0027}. The next value is @var{$0014 6516}.
Replace @var{$6516} by @var{$6026}.

@item Get@*
@uref{http://de.aminet.net/pub/aminet/util/boot/NewAlertH.lha,AddModule}.@*
In the first line of your @file{s:Startup-Sequence} write:@*
@kbd{RUN <>NIL: c:AddModule <>NIL: DEVS:scsi.device CLASS 1 PRI 10 INIT ;V43 CLASS xoper e flags}
@end enumerate

@noindent After the second reboot, the new @code{scsi.device} is loaded.

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix Section: Speed up/TurboBoards                   ---
@comment ----------------------------------------------------------------
@node TurboBoards,   , SCSIdevice installation, Speed up
@appendixsection General speedup for turbo boards
@cindex Stack, Supervisor
@cindex Blizzard-IV
@cindex Fastmemory
@cindex Chipmemory
@cindex AddModule
@cindex AVL
@cindex FastExec

@noindent You have a turbo board, e.g. a Blizzard-IV with Extra Fast Memory?
@sp 2
@noindent Is the @code{exec.library} ``function-jump-table`` (@sc{AVL})
in the Chip Memory? (Can be found out using @code{XOper} or @code{FastExec}.)

@noindent Get @uref{http://de.aminet.net/pub/aminet/util/boot/FastExec29.lha,FastExec}.
Start it with:@*
@kbd{FastExec SysInfo}
@sp 1

Is the output for @code{SysStkUpper} @var{$xxxxxxxx} a value greater than@*
@var{$00200000} if you have 2MB ChipMemory, or@*
@var{$00100000} if you have 1MB ChipMemory?
@sp 2

If not, then the @code{``supervisor stack``} is in Chip Memory. This slows down the ``task-switching``.
@sp 2

Insert this line in your @file{s:Startup-Sequence}, after @code{AddModule} (if present):@*
@kbd{FastExec REBOOT FASTSSP FASTMEM}

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix: Mark Bad Memory                                ---
@comment ----------------------------------------------------------------
@node Mark Bad Memory, OS more reliable, Speed up, Top
@appendix How to use bad memory
@cindex Memory, Bad
@cindex Memory Test
@cindex Alloc Absolute, mark bad memory
@cindex PS-2
@cindex SIMM
@cindex Static

@noindent Do your programs crash randomly?
@sp 1

Then your RAM-modules may be faulty. Especially PS-2 (SIMM) modules are very vulnerable
to ``static electricity``.@*
Or you have some unused RAM-modules laying around?
@sp 2

No need to worry, like on a harddisk, you can mark bad memory and exclude it
from usage.

@sp 2
But first we have to know where exactly the memory is faulty. For this purpose there is an excellent
program called @uref{http://de.aminet.net/pub/aminet/util/misc/MemoryTest.lha,MemTest},
which should be started without booting (as much free memory as possible).
Beforehand, the ``DataCache`` of the @sc{CPU} should be disabled with
@smallexample
@kbd{CPU NODATACACHE NODATABURST NOEXTERNALCACHE}
@end smallexample
@noindent . Now start the ``@code{Rotate 32}`` test and save the result.

@sp 2
Now get @uref{http://de.aminet.net/pub/aminet/dev/misc/allocate.lha,Allocate}.

@sp 2
@noindent Insert at the beginning of your @file{S:Startup-Sequence}:
@example
resident c:Allocate pure
Allocate <>NIL: @sc{68900000} @sc{100000}
Allocate <>NIL: @sc{68B00000} @sc{100000}
resident Allocate remove
@end example

The hexadecimal addresses should, of course, contain the bad memory areas. (Be generous,
don't be stingy with a few  100@sc{KB} or @sc{MB} (depending on the chip).)

@sp 3
@noindent This works with @code{Lin@sc{UX}}, too:@*

Create a @file{file}, where you insert all areas which work @sc{100%}
okay. For example@:
@example
2097152
0x68000000 9437184
0x68A00000 1048576
0x68C00000 3670016
@end example

and start @code{AmiBoot} with @kbd{-m FileName}.

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix: OS more reliable                                  ---
@comment ----------------------------------------------------------------
@node OS more reliable, Known Bugs, Mark Bad Memory, Top
@appendix How to make the Amiga more stable
@cindex Instruction erros
@cindex Memory corrupt
@cindex Guru
@cindex Alert
@cindex Stack, overflow
@cindex StackAttack
@cindex Stabl OS

@noindent Do your programs crash with a Guru @var{4} (Instruction error) or
@var{$1000005} (Memory corrupt) ab?
@sp 1

The reason could be a too small stack. Every System has a different stack usage, because
different programs run in the background, and change system-routines.

@sp 2
If several programs change the same system-routines, this may result in an
stack overflow
@itemize @minus
@item which can destroy the free-memory-list,
@item or the return address of a subroutine is gone after a task-switch,
@item or even other programs are changed accidently (Enforcer/CyberGuard-Hit).
@end itemize
Even if only one program changes a system-routine and doesn't use stack itself, there are at least
4 Bytes used.

@sp 2
@noindent Luckily there is @uref{http://de.aminet.net/pub/aminet/util/boot/StackAttack.lha,@code{StackAttack}},
Which gives almost every program a little more stack.

example installation in the @file{s:Startup-Sequence}:
@smallexample
StackAttack ADDSTACK=512
@end smallexample

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix: Known Bugs                                     ---
@comment ----------------------------------------------------------------
@node Known Bugs, Technical, OS more reliable, Top
@appendix Known bugs
@cindex Bugs
@cindex ABackUp
@cindex Virtual-Memory-Manager (VMM)
@cindex AbortIO
@cindex CloseDevice
@cindex AllocEntry (OS)
@cindex AllocPooled (OS)
@cindex ViNCEd
@cindex vdisk.device (VD0:)
@cindex Enforcer
@cindex MungWall
@cindex PatchWork
@cindex CopyMem(Quick) (OS)
@cindex cache-programs, other
@cindex PowerCache
@cindex Checksum error
@cindex DynamiCache
@cindex ArtStudioPro 3

If your think you found a bug in @w{@code{Future Drive Accelerator}},
please send a description @pxref{New Bug,description} to the author @pxref{Author,Autor}.
@sp 2

@noindent Here is a list of known bugs and problems:
@sp 1

@noindent Bugs:

@itemize @bullet
@item ABackUp has a problem with the RAM-Disk patch of
@code{Future Drive Accelerator} V@value{VERSION}.@*
@result{} If a file is packed with @sc{XPK} and there is no space in the RamDisk, ABackup
thinks the file is 2GigaByte large.@*
Will be fixed in the near future, when the author has completly rewritten the memory-routines.

@item @code{AvailMemory(largest)} gives a value that is too small.@*
@result{} There is a larger continous block; so
``@code{not used FastMemory}`` can be set tof @var{1}%.@*
The real value can be determined if you start @code{Avail} from the shell, then quit
@code{@sc{FDA}}, and again start @code{Avail}.@*
Will be fixed in the near future, when the author has completly rewritten the memory-routines.

@item If the ``@code{Size of Track}`` is different from disk to disk, the memory
will be fragmented.@*
Will be fixed in the near future, when the author has completly rewritten the memory-routines.

@end itemize

@sp 3
@noindent Not real bugs:

@itemize @bullet
@item If @code{Not used ChipMemory}, @pxref{MainWindow} is set to @kbd{100%},
no track can be moved to make room.@*
@result{} The track is removed from the cache.@*
Will be improved soon, when the author has rewritten the memory-routines.

@item Doens't support AbortIO,CloseDevice yet.

@item Supports, but not optimal, AllocMem(reverse).@*
@result{} AllocMem reserves a memory area which is the last free.
Normally this is in an early region, because the cache is behind.
@xref{Installation}.@*
Will be fixed in the near future, when the author has completly rewritten the memory-routines.

@item @code{ViNCEd} V3.63 doesn't use @code{AllocEntry} or @code{AllocPooled}
from exec library, to maintain an own poolmemory, to bundle small memory
allocations. (It replaces @code{AllocPooled} with an own routine.)@*
@result{} The cache is very often flushed unneccesary.
That's a pity, because for instance the horizontal scrolling is a nice feature.@*
@code{KingCON} V1.3 makes no problems.@*
Will be fixed in the near future, when the author has completly rewritten the memory-routines.

@item @code{vdisk.device} 2.7 (C) 1994-1997 by Etienne Vogt (like ramdrive.device)@*
Doesn't work together, because @code{vdisk} does not use OS-memory functions. Is
not that tragic, because it doesn't support FastFileSystem V44.5, too.

@end itemize
@sp 2

@noindent @code{Future Drive Accelerator} has been tested intensively with Enforcer/MungWall and PatchWork.
@sp 1

Patchwork has helped to figure out two very resistant bugs.@*

@itemize @bullet
@item CopyMem(Quick)@*
size must not only be LongWordAlligned (size MOD 8=0),
but also Destination & Source. The bug appeared only after
several 1000 times and caused chaos in memory.

@item CopyMem(Quick)@*
``memory areas are overlapping (incremental)`` seemed to work,
but sooner or later, there will be chaos in memory, too,
at least with CopyMemQuickerV2.8.
This doesn't mean that CopyMemQuicker is not a good program. @xref{Speed up}.

@end itemize
@sp 2


@noindent Problems of other cache-programs
@itemize @bullet
@item PowerCache@*
@itemize @bullet
@item Has caused @strong{checksum error} while writing,
because Read/Write request are not put in a queue.
Especially because the settings are saved to late before a reboot.
@item Cache usage is not flexible.
@item Doesn't re-use the cache when reinserting a disk.
@end itemize

@item DynamiCache
@itemize @bullet
@item Does not support Write Async.
@item Does not support SCSI-direct-FileSystems.
@item Does not support harddisk with more than 4 GigaBytes.
@item Doesn't re-use the cache when re-inseritng a disk.
@item Fragments the memory @strong{extremely}.
@item Does not support @code{AllocAbs} and @code{Allocate} to free the cache for other programs.
@item If flush is executed (memory full), the cache is deleted, although the
memory is not  too short anyway.
@item Does not cache accesses from @code{ArtStudioPro 3} and @code{Imagine}.
@end itemize

@end itemize

@ifinfo
@menu
* New Bug::    Have you found a new bug?
* DebugFiles:: Programs to aid the debugging
@end menu
@end ifinfo


@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix Section: Known Bugs/New Bug                     ---
@comment ----------------------------------------------------------------
@node New Bug, , , Known Bugs
@comment  node-name, next   , previous, up (Section=>Chapter)
@appendixsection New bugr
@cindex SegTracker
@cindex Enforcer
@cindex CyberGuard
@cindex MungWall
@cindex MMU
@cindex Tnt
@cindex MungFriend
@cindex Sushi
@cindex Guru-Alert
@cindex Gurunumbers
@cindex Checksum error

@enumerate

@item Which version do you use?

@item What was set in @sc{FDAP}ref, @pxref{DeviceWindow,FDAPref}? (Removeable Disk?, ...)

@item What says @sc{FDAP}ref, @pxref{InfoWindow}, about the non-functioning partition?

@item If other programs do not work as they should, do they without FDA?

@item If DOS-checksum (Read/Write) error occured, please activate
@sc{FDAP}ref @key{Protect tracks in memory with checksummes}, @pxref{MainWindow,Protect tracks in memory with checksummes}.
If @sc{FDA} reports checksum errors, it is not a @sc{FDA} BUG. Or try to install another FileSystem, if the harddisk
has more than 4 GigaByte capacity. @xref{FileSystem installation}.@*
Or remove static dust from your RAM-modules. @xref{Mark Bad Memory}.

@item How did the bug appear? How can it be reproduced?

@item Which hardware/software (Mem, OS, FileSystem, Device-Software) was used?

@item Was there a Guru-alert (error messages)?@*
In @sc{FDA} are Guru-number (error messages) built-in. These start with @dfn{$0FDA00##}.
@sp 1

If there was another number, please start SegTracker from the Enforcer-package. Start Tnt or if possible
Enforcer or replacement programs like CyberGuard (MC68060).
Wait for the bug to show up again.@*
Write down the error message.@*
SegTracker is important because the author would like to know when the BUG occours. @xref{DebugFiles}.

@item If something like this appears, please start Segtracker before.
@smallexample
Guru #0005: Division durch 0
Dx 00007FFF 00000000 08C6FFFF 00000000  7FFFFFFF 00000000 081AAE54 00000000
Ax 081AADEC 08C5F9D6 08C5F9DA 08C5F88A  081AAE54 08C5FC34 08000AB0 08C5F820
segment @sc{FDAP}ref
hunk       0
offset  0000365E
sr 0000
pc 08C553E6
<RETURN>
@end smallexample

@end enumerate

@ifinfo
@menu
* DebugFiles:: SegTracker, Enforcer und Co.
@end menu
@end ifinfo

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix Sub Section: Known Bugs/New Bug/DebugFiles      ---
@comment ----------------------------------------------------------------
@node DebugFiles,   ,  , New Bug
@comment  node-name, next   , previous, up (Section=>Chapter)
@appendixsubsec SegTracker, Enforcer und Co.
@cindex Enforcer
@cindex SegTracker
@cindex CyberGuard
@cindex MungWall
@cindex Tnt
@cindex MMU
@cindex MungFriend After Reset/GURU
@cindex Sushi
@cindex MultiCX

@noindent Please read on if you have a processor with @sc{MMU}, or want to know whether you have.

@sp 2

@noindent Needed files
@table @asis
@item @uref{http://de.aminet.net/pub/aminet/dev/debug/enforcer.lha,Enforcer supports MC68060},
@item @uref{http://de.aminet.net/pub/aminet/biz/p5/68060-V44_3.lha,CyberGuard supports MC68060 DisASM},
@item @uref{http://de.aminet.net/pub/aminet/dev/debug/Mungwall37_64.lzh,MungWall to detect Bad written Programs}.
@sp 1

@item needed to display output (Virtua Terminal) (Work also if the MultTasking is switched off), @uref{http://de.aminet.net/pub/aminet/dev/debug/MungFriend.lha,a replacement for Sushi}.
@end table
@sp 2

@noindent How to run Debugging-Tools?
@itemize @asis
@item SegTracker (Needed for locate (Hunk-offset) the bug)@*
@kbd{RUN Devel:Debug/Enforcer/SegTracker}

@item Enforcer@*
@kbd{MultiCX/RebootOff} (if MultiCX is running)@*
@kbd{RUN Enforcer SHOWPC VERBOSE DEADLY STACKCHECK AREGCHECK DREGCHECK RAWIO} (need MungFriend)@*
@kbd{RUN Enforcer SHOWPC VERBOSE DEADLY STACKCHECK AREGCHECK DREGCHECK FILE=CON:0/0/640/100/Enforcer/Auto/Close}@*
@kbd{LawBreaker} (Any Output? Yes the @sc{MMU} is working.)
@sp 1

@item CyberGuard@*
@kbd{RUN CyberGuard SHOWPC VERBOSE DEADLY STACKCHECK AREGCHECK DREGCHECK FILE=CON:0/0/640/100/CyberGuard/Auto/Close PCLINES=4 SHOWDISS}@*
@kbd{LawBreaker} (Any Output? Yes the @sc{MMU} is working.)
@sp 2

@item MungWall (Detect bad written Programms (CheckSumme-Error))@*
@kbd{RUN MungWall INFO SHOWFAIL SHOWPC SHOWHUNK SHOWSTACK NAMETAG}
@sp 2

@item Start Output Display Buffer (Virtual Terminal) (MungFriend ON RawSer->CON:)@*
@kbd{RUN Devel:Debug/MungFriend INSTALL SIZE 40000 trace flash nobells noserial}

@item Convert, only, GuruNumber in Hunk-offset, doesn`t need an @sc{MMU}.@*
@kbd{Devel:Debug/Tnt FORCE}

@end itemize


@noindent How to show the output?
@itemize @asis
@item MungFriend Type to Window@*
@kbd{Devel:Debug/MungFriend >CON:0/0/696/200/MungFriendSerOutput/Auto/Close/Wait/SHELL TYPE}

@item MungFriend Write to File@*
@kbd{Devel:Debug/MungFriend Write `RequestFile DRAWER=SYS:T/ FILE=SerialOutput.txt TITLE="OutputFile"`}

@item MungFriend Clear@*
@kbd{Devel:Debug/MungFriend CLEAR}

@item MungFriend Info (Is any inside?)@*
@kbd{Devel:Debug/MungFriend INFO}

@item MungFriend ON RawSer->CON After Reset/Dead-GURU: (OutPut is still alife)@*
@kbd{Devel:Debug/MungFriend update trace}

@item MungFriend OFF@*
@kbd{Devel:Debug/MungFriend REMOVE}
@end itemize

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix: Technical                                      ---
@comment ----------------------------------------------------------------
@node Technical, Index, Known Bugs, Top
@appendix Technical data
@cindex SCSI-direct
@cindex TrackDisk64
@cindex Verify
@cindex AllocMem (OS)
@cindex Allocate (OS)
@cindex AvailMem (OS)
@cindex AllocAbs (OS)
@cindex BeginIO (OS)
@cindex Oberon-2
@cindex Assembler
@cindex NewStyleDevice (NSD)

@noindent For curious people, who want to know everything.
@sp 1

@itemize @bullet
@item In Exec-Library are patched @code{@emph{AllocMem}} (@emph{AllocVec},
@emph{AllocPooled}, @emph{CreatePool}), @code{@emph{Allocate}}
(@emph{AllocEntry}), @code{@emph{AvailMem}}, @code{@emph{AllocAbs}} and in the
Device�@code{@emph{BeginIO}}.

@item Memory for the tracks is reserved decreasing (reverse).

@item The program was written in @code{Oberon-2} and Assembler.

@item One track requires 16 Byte in the cache-structure.

@item Using Verify, memory of the size of one track is required per device.

@item The TrackDisk64 and SCSI-direct commands support ``only`` 40-Bit
@smallexample
2^40 =        1,0995 TeraByte   1125,9                GigaByte
2^64 = 18446744,074  TeraByte      1,8889465931776e10 GigaByte
@end smallexample
The calculation is carried out with a ``fast`` 32-Bit division.@*
@strong{1226 GByte Festplatten} will not be available until the 3rd millenium
(by todays standards).

@item Only an offset which is divisible by 512 can be used.
It would be possible to implement something else, but SCSI-drives don't 
support it anyway and there is no known program that doesn't read/write 
whole blocks (512 Bytes), so we can save a few bus-cycles here.

@item These device commands are understood:

@itemize @asis
@item @file{include:exec/io.h}@*
read, write, update,

@item @file{include:devices/trackdisk.h}@*
format, extFormat, extRead, extWrite, rawWrite, extRawWrite, extUpdate, motor, extMotor,
protStatus, getGeometry, getDriveType, getNumTracks, eject

@item @uref{http://de.aminet.net/pub/aminet/dev/misc/trackdisk64.lha,trackdisk64}@*
read64, write64, format64

@item NewStyleDevice (NSD)@*
read64, write64, format64
@sp 1

Is used by FastFileSystem @uref{ftp://ftp.amiga.com/pub/,V43.x}.
@result{} No problems with harddisks bigger than 4 GigaBytes anymore.
@xref{FileSystem installation,How to use 4 GigaByte harddisks}.
@sp 1

Informations about these commands can be found here:@*
@uref{http://www.amiga.de/files/index.html,NSDDocs}@*
@uref{http://de.aminet.net/pub/aminet/disk/misc/NSDPatch43_20.lha,NSDPatch}

@item @file{include:devices/scsidisk.h}@*
scsiCmd
@sp 1

SmartFileSystem_SCSIdirect, FastFileSystem V44.5 und ProfiFileSystem-2_SCSIdirect
use this command instead of the old trackdisk read/write commands.@*
@result{} No problems with harddisks bigger than 4 GigaBytes anymore.
@xref{FileSystem installation,How to use 4 GigaByte harddisks}.
@sp 1

Not all scsiCMD are used, because I don' have a documentation.
@sp 1

@smallexample
( @uref{http://de.aminet.net/pub/aminet/dev/misc/SCSIProgrammer.lha,SCSIProgrammer} )
( (include:scsi/commands.h SCSI-2 include files) )

( Direct Access devices        =da )
( Write Once devices           =wo )
( CD-ROM devices               =cd )
( Scanner devices              =sc )
( Optical memory devices       =om )
( Sequential access devices    =sa )
( Printer devices              =prt)
( Processor devices            =cpu)
scsiREAD6         =$08 ( da wo cd    om )(not tested)
scsiREAD10        =$28 ( da wo cd sc om )
scsiREAD12        =$A8 (    wo cd    om )(not tested)

scsiWRITE6        =$0A (    wo       om )(not tested)
scsiWRITE10       =$2A (    wo       om )
scsiWRITE12       =$AA (    wo       om )(not tested)
@end smallexample
@*
@strong{Has anyone a documentation for these commands?:}
@smallexample
scsiREAD_BUFFER   =$3C ( da wo cd sc om sa prt cpu )
scsiWRITE_BUFFER  =$3B (    wo cd sc om sa prt cpu )
scsiUPDATE_BLOCK  =$3D (             om            )
@end smallexample

@end itemize

@end itemize


@ifinfo
@menu
* Programmers::               What programmers should observe@dots{}
* Default::                   Which values are the defaults?
* ReturnNumbers::             What are the return values?
* FileSystem installation::   How to use 4 GigaByte harddisks
* DataSafety::       What you should know when using ProfiFileSystem-2 and SmartFileSystem
* SCSIdevice installation::   Better use of @sc{ATA[PI]} drives
@end menu
@end ifinfo

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix Section: Technical/Programmers                  ---
@comment ----------------------------------------------------------------
@node Programmers, , Default, Technical
@appendixsection What programmers should observe@dots{}
@cindex Async
@cindex DoIO (OS)
@cindex SendIO (OS)
@cindex LongWordAlligned

@enumerate
@item Data, which shall be written using the DOS functions @code{Read/Write},
should be @code{LongWordAlligned} (adr MOD 4=0), because the processor can access 
them faster then. This also applies to data which is sent directly to a device.
AllocMem, Allocate@dots{} automatically return an address that is LongWordAlligned.
So you only have to pay attention if you divide a memory block @strong{manually}.

@item Remember: If you use @code{SendIO} instead of @code{DoIO}, the command is
executed @strong{A}sync. Not only reading and writing, but also
@code{changeState, motor, protStatus, remove, changeNum} @dots{} commands.
@end enumerate

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix Section: Technical/Default                      ---
@comment ----------------------------------------------------------------
@node Default, Programmers, ReturnNumbers, Technical
@appendixsection Which values are the defaults?
@cindex Default
@cindex Seconds
@cindex Time

@noindent At the first start and after choosing @key{Edit/reset to Defaults} from the menu,
these values will be used:

@smallexample
Create Icons                                   = FALSE (OFF)

Not used FastMemory                            = 60 KB
Not used ChipMemory                            = 50 KB
FastMemFirst                                   = TRUE  (ON)
View color flash if track moved or deleted     = FALSE (OFF)
Protect tracks in memory with checksummes      = FALSE (OFF)


HD             Async delay                     = 4 seconds
Disk           Async delay                     = 7 seconds

Device| Pri | Settings
---------------------------------------------------------------------
DF0�  | 100�|�Removeable Disk, Write Async, Verify write
DF1   | 100�|�Removeable Disk, Write Async, Verify write
DF2   | 100�|�Removeable Disk, Write Async, Verify write
DF3   | 100�|�Removeable Disk, Write Async, Verify write
DS0�  |  80�|�Removeable Disk, Write Async, Verify write
DS1   | �80�|�Removeable Disk, Write Async, Verify write
DS2   | �80�|�Removeable Disk, Write Async, Verify write
DS3   | �80�|�Removeable Disk, Write Async, Verify write
PC0   |  60�|�Removeable Disk, Write Async, Verify write
PC1   | �60�|�Removeable Disk, Write Async, Verify write
PC2   | �60�|�Removeable Disk, Write Async, Verify write
PC3   | �60�|�Removeable Disk, Write Async, Verify write
PS0�  |  40�|�Removeable Disk, Write Async, Verify write
PS1   | �40�|�Removeable Disk, Write Async, Verify write
PS2   | �40�|�Removeable Disk, Write Async, Verify write
PS3   | �40�|�Removeable Disk, Write Async, Verify write
CD0   |  20 | Removeable Disk, WriteRetention
HD0   |   0 | Write Async
HD1   |   0 | Write Async
HD2   |   0 | Write Async
HD3   |   0 | Write Async
DH0   |   0 | Write Async
DH1   |   0 | Write Async
DH2   |   0 | Write Async
DH3   |   0 | Write Async
@end smallexample

@c @iftex
@c @multitable @columnfractions .4 .4 .50
@c @item Device @tab Pri @tab Preferences
@c @item DF0 @tab 100 @tab Removeable Disk, Write Async, Verify write
@c @item DF1 @tab 100 @tab Removeable Disk, Write Async, Verify write
@c @item DS0 @tab  80 @tab Removeable Disk, Write Async, Verify write
@c @end multitable
@c @end iftex


@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Appendix Section: Technical/ReturnNumbers                ---
@comment ----------------------------------------------------------------
@node ReturnNumbers, Default, , Technical
@comment  node-name, next   , previous, up (Section=>Chapter)
@appendixsection Return values
@cindex Return values
@cindex IF (Shell Command)

@noindent The return values can be used within a shell-script.

@example
Sys:Prefs/FDAPref ENVARC:FDA-AfterBoot.prefs USE
IF WARN ;@sc{FDA} is not running
        RUN Sys:System/FDA ENVARC:FDA-AfterBoot.prefs QUIET
ENDIF
@end example
@sp 1

@example
Sys:System/FDAView >NIL: Kill-FDA
IF NOT WARN ;@sc{FDA} is running before
        RUN Sys:System/FDA ENVARC:FDA-AfterBoot.prefs QUIET
ENDIF
@end example
@sp 1

@example
RUN Sys:System/FDA ENVARC:FDA-AfterBoot.prefs QUIET
IF $RC GE 5 ;@sc{FDA} is running before
        Sys:Prefs/FDAPref ENVARC:FDA-AfterBoot.prefs USE
ENDIF
@end example

@smallexample
AlreadyRunning          = warn          (5)
PreferenceCancel        = error         (10)
PreferenceFDAnotRunning = warn          (5)
NoDeviceCached          = fail+1        (20�+1)
CanNotCreatePort        = fail+2
ReadArgsError           = fail+3
CanNotReadPrefs�        = fail+4
CanNotCreateTask�       = fail+5
AllocSignalError�       = fail+6
NoMem�                  = fail+777-fail
@end smallexample

@comment ----------------------------------------------------------------




@comment ----------------------------------------------------------------
@comment --- Unnumbered chapter: Index                                ---
@comment ----------------------------------------------------------------
@node Index, , Technical, Top
@iftex
@headings off
@c @everyheading @| @|@thispage
@c @everyfooting @|Future Drive Accelerator@|
@end iftex
@page
@unnumbered Index
@printindex cp

@comment ----------------------------------------------------------------


@comment This is REALLY the end ;-)

@bye
